編碼算法給出的整數從1到1000.我從我的編程老師那裏得到了這個謎語
她說我的代碼不工作。真正的答案是什麼?
我的代碼:
int z = 1000;
int Sum = 0;
for(int A = 1; A != z; A++)
{
Sum += A;
}
Writeline(Sum + " yours Sincerly, Allen");
編碼算法給出的整數從1到1000.我從我的編程老師那裏得到了這個謎語
她說我的代碼不工作。真正的答案是什麼?
我的代碼:
int z = 1000;
int Sum = 0;
for(int A = 1; A != z; A++)
{
Sum += A;
}
Writeline(Sum + " yours Sincerly, Allen");
即使是容易做到以下幾點:
var result = Enumerable.Range(1, 1000).Sum();
沒有不同誘變循環變量保持跟蹤!
而教授會聞到魚 – Steve
這個答案可行,但取決於OP在他/她的班級學習什麼(我認爲這是一個簡單的任務,OP正在學習* loops/iteration *),這可能會不是一個可以接受的答案,因爲OP *可能*必須完成這項任務,而只使用一個循環。 –
您的答案將會經過1
和999
之間的每個數字,但它將排除1000
,歸因於A != z
。
您需要將等於運算符更改爲<=
,以便1000
包含在循環中。
using System;
public class Program
{
public static void Main()
{
int x = 0;
int a = 1000;
for(int i = 1; i <= a; i++)
{
x += i;
}
Console.WriteLine(x + " yours Sincerly, Allen");
}
}
我創建了一個dotnetfiddle供您觀察。
我的猜測是她說你的循環條件不包含'1000'。你應該使用'<=',而不是'!='。 –
'她說我的代碼不起作用.'你不允許測試它嗎? – LarsTech
您的代碼不起作用,因爲您不包含'1000'。如果'A!= z'爲'false',則循環會中斷,所以不會添加'1000',而只會得到'499500'而不是'500500'。 –