如果我更改代码行" num ++"到" num + = 2520",代码运行良好并返回正确的答案,但我想知道它为什么不按原样运行,主要是因为我没有考虑到在查看答案之前,这个数字必须是2520的倍数,而且我不明白为什么我自己的代码没有正确地给出答案而没有改变。对我来说,这似乎是正确的。不幸的是,while循环永远不会结束。
我的猜测是它与正确数字的长度(232792560)有关,因为如果我将要求降低一点(从9到8本身),则while循环设法完成。 / p>
long long int num = 1;
int div_counter = 1;
bool check = false;
while(!check)
{
for(int i = 2; i < 21; i++)
{
if(num % i == 0)
{
div_counter++;
}
}
if(div_counter == 20)
{
check = true;
}
else
{
num++;
div_counter = 0;
}
}
return num;
答案 0 :(得分:2)
您必须将div_counter
重置为1
而不是0
。
您的for
循环仅从2
到20
,所以如果div_counter
从0
开始,则可以达到19
的最大值<UserControl ...
DataContext="{dxmvvm:ViewModelSource Type=local:MyViewModel}">
}}