2016-08-16 16 views
-2

編碼算法給出的整數從1到1000.我從我的編程老師那裏得到了這個謎語

她說我的代碼不工作。真正的答案是什麼?

我的代碼:

int z = 1000; 
int Sum = 0; 
for(int A = 1; A != z; A++) 
{ 
    Sum += A; 
} 

Writeline(Sum + " yours Sincerly, Allen"); 
+10

我的猜測是她說你的循環條件不包含'1000'。你應該使用'<=',而不是'!='。 –

+3

'她說我的代碼不起作用.'你不允許測試它嗎? – LarsTech

+2

您的代碼不起作用,因爲您不包含'1000'。如果'A!= z'爲'false',則循環會中斷,所以不會添加'1000',而只會得到'499500'而不是'500500'。 –

回答

3

即使是容易做到以下幾點:

var result = Enumerable.Range(1, 1000).Sum(); 

沒有不同誘變循環變量保持跟蹤!

+2

而教授會聞到魚 – Steve

+1

這個答案可行,但取決於OP在他/她的班級學習什麼(我認爲這是一個簡單的任務,OP正在學習* loops/iteration *),這可能會不是一個可以接受的答案,因爲OP *可能*必須完成這項任務,而只使用一個循環。 –

1

您的答案將會經過1999之間的每個數字,但它將排除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供您觀察。

相關問題