2012-01-25 21 views
-1
class Program 
{ 

    static void Main(string[] args) 
    { 
     Console.WriteLine("Fib 1: "); 

     Console.ReadLine(); 
    } 
    long fibonacci1() 
    { 
     long a = 1, b = 2, c, answer = 0; 
     for (int i = 0; answer < 4000000; i++) 
     { 
      c = a + b; 
      if (c % 2 == 0) 
      { 
       answer += c; 
      } 
      a = b + c; 
      if (a % 2 == 0) 
      { 
       answer += a; 
      } 
      b = a + c; 
      if (b % 2 == 0) 
      { 
       answer += b; 
      } 
     } 
     return answer; 
    } 

    void fibonacci2() 
    { 
     long[] y = new long [1000000]; 
     long x = 2; 
     long a = y[x - 2] = 1; 
     long b = y[x - 1] = 2; 
     long n = y[x]; 
     long answer = 0; 

     for (x=2; answer < 4000000; x++) 
     { 
      n = a + b; 
      if(n % 2 == 0) 
      { 
       answer += n; 
      } 
     } 
     Console.WriteLine("Fib 2: " + answer); 
    } 
} 

這就是我到目前爲止所提出的。我試圖想出兩種方法來提出答案。歐拉2. 2種方法如何打電話給每個人?

1)你怎麼稱呼這兩種方法?

2)你們對這兩種方式有什麼看法?我無法測試,但任何建議或提示(如果我錯了)不要給我答案:)


在Fibonacci序列中的每個新名詞是通過將前兩個方面產生。通過用1和2開始,第一10項將是:

1,2,3,5,8,13,21,34,55,89,...

通過考慮中的條款斐波納契數列的值不超過四百萬,找到偶數項的和。

+0

嗯......什麼?我想是一個接一個的。 (另外,也許包括這個問題會有幫助。) – Ryan

+0

你能寫出問題陳述嗎?我不明白你的問題 – bentham

回答

1

讓他們既static功能是這樣的:

static long fibonacci1() 
{ 
    ... 
    return answer; 
} 

static long fibonacci2() 
{ 
    ... 
    return answer; 
} 

,並從Main()這樣稱呼他們:

{ 
    long a1 = fibonacci1(); 
    long a2 = fibonacci2(); 
    Console.Writeline(...); 
}