2013-10-29 99 views
-3

計算用戶輸入n的代數表達式Z.使用2個循環來解決問題。用C#計算代數表達式

enter image description here

到目前爲止我的代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Collections; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      float sum = 0; 

      int n = int.Parse(Console.ReadLine()); 

      for (int i = 1; i <= n; i++) 
      { 
       float p = 1; 
       for (int k = 1; k <= i + 2; k++) 
       { 
        p *= (3 * k + 2); 
       } 

       sum += p; 
      } 

      Console.WriteLine(sum); 
      Console.ReadLine(); 
     } 
    } 
} 

我得到錯誤的結果,有時是相同的,在案件3和第4回6200(這是不對的+相同)。

回答

4

使用<=,而不是在第一< for循環,並寫i++而不是i+=2

此外,您不需要使用float,因爲結果將始終爲整數。改爲使用long

+0

我這樣做,我不再得到相同的結果,但是,我認爲結果是錯誤的還是?對於輸入2,我得到的答案是:6600.我認爲答案是30(如果我正確地做了數學?)。 – user2925251

+0

不是。它得到了正確的解決方案。你錯了。 :) http://www.wolframalpha.com/input/?i=sum%28product%283k%2B2%2C+1..i%2B2%29%2C+1..2%29 –

1

我想這條線是錯誤的:

for (int i = 0; i < n; i += 2) 

應該

for (int i = 1; i <= n; i++) 
+0

我已經做到了,看到更新和結果幾乎相同... ... – user2925251