2017-12-04 24 views
-5

各反復の各A値を一緒に追加したいと思います。このループでは約10回回りますので、私は10種類のA値を持っています。私はすべてのAの合計価値を求めています。私はそれを解決しましたが、私はそれを行うより簡単な方法でなければならないと感じています。だから私の質問は、それを行う簡単な方法はありますか?forループから各反復の各値を追加するC#

int a = 0; 
int b = 0; 
int c = 0; 
int e = 0; 
for (int i = 1; i <= 10; i++) 
{     
    a = i * i; 
    c = a + b; 
    c = e + c; 
    e = c;     
} 
Console.WriteLine(c); 
Console.Read(); 
+1

試した 'a + =私は? – Fildor

+0

'b'のポイントは何ですか?常に0になっていますか? – juharr

+0

どうやって解決しましたか?あなたはいつも 'a'を上書きしています、これはどのように_ _の合計値ですか? –

答えて

0

あなたのコードは、本当に意味がありません。たとえば、値をcに割り当てていますが、次の行に別の値を割り当てるのはなぜですか?その結果、最初の値は使用されません。

あなたの質問に具体的に答えたい場合は、に「私はすべてのAの合計値が欲しいです。」と答えてください。

int a = 0; 
int b = 0; 
int c = 0; 
int e = 0; 
int total = 0; 

for (int i = 1; i <= 10; i++) 
{     
    a = i * i; 
    c = a + b; 
    c = e + c; 
    e = c;    
    total += a; 
} 
Console.WriteLine(total); 
Console.Read(); 
+0

1から10の四角形を合計すると、ちょうど複雑な形になります。 – juharr

+0

ありがとう、私は本当に理由を言うことはできません。しかし、それが働くにはそこにいなければなりませんでした。 –

+0

@ J.doeまあ、あなたは間違った方向に向いていて、足の裏に自分自身を撃ったと思う:bは常に0だから、c = a + bは常にaで、cはe + cに設定されている最後の反復+ aから、eはその値に更新されます。これはa = a + i * iに短縮することができ、a = i * iである。 – Fildor

4

あなたは、LINQを使用することができます:あなたはi使用Math.Powのいずれかの電力を計算したい場合は、ところで

int a = 0; 
for (int i = 1; i <= 10; i++) 
{ 
    a += i * i; 
} 

int a = Enumerable.Range(1, 10).Sum(i => i * i); 

と同じである

int a = Enumerable.Range(1, 10).Sum(i => (int)Math.Pow(i, 2)); 
+0

ありがとう、これは私もループを使用する必要はありませんし、私はMath.Powの事について知りませんでした。 –

+0

@ J.doe:明確にするために:LINQもループを使用しますが、あなたはそれらを見ることはできません。したがって、LINQはコードを単純化するのに役立ちますが(重要なことはありますが)、より速く実行されることは期待しません。 –

+0

多分疑問な質問ですが、 '.Sum(i => i * i);' i変数を宣言しないとどうしたらうまくいくのでしょうか? –

関連する問題