如何进行循环并解决以下问题

时间:2017-11-22 15:06:04

标签: c# .net math

我应该编写一个程序来编写一个部门,就像在学校一样。

示例:

WHERE text LIKE "%quick%"
  AND text LIKE "%brown%"
  AND text LIKE "%fox%" 

所以我的方法是: 解决该部门,然后在 "query": { "bool": { "filter": [ { "bool": { "must": [ { "terms": { "text": [ "*quick*", "*brown*", "*fox*" ] } } ] } } ] } } 中获得解决方案。 然后询问第一个数字(在这种情况下为1)是否可以被3整除。 如果没有把它放下来并添加第二个数字等等......

我第一次设法做到了这一点。它很草率但很有效。问题是它只适用于分割时得到小数的数字。 Exapmle: 123:13

这是第一个代码:

13:3=4.333333333333
13
 1
 10
  10
   10....

任何想法或帮助?对不起,如果这是一个糟糕的问题。

************补充道 尝试更好的解释:

<1> 1不能除以13,所以它下降,我们得到2下来并尝试12除以13,仍然没有,所以我们得到3下来尝试123:13,13在123中去9次所以我们有123-9 * 13 = 6六个下降我们在结果中写入9。我们尝试6:13不去,所以我们在6旁边放0.接下来我们尝试60:13,13去4次所以60-4 * 13 = 8,我们得到8下来。等等..

List

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效。不是最有可能的最快解决方案,但应该完成这项工作。

var number = 123;
var b = 12;
int quotient;
double remainder = number;
var x = 10;
do
{
    quotient = (int)Math.Floor(remainder / b);
    remainder = remainder - (quotient * b);
    for (int i = 0; i < count; i++)
        Console.Write(" ");

    remainder *= 10;
    Console.WriteLine(" " + remainder);    
    count++;    

} while ((remainder > 0) && (count < x));