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. 2メソッドは、それぞれを呼び出す方法?

1)どのように2つのメソッドを呼び出しますか?

2)あなたは2つの方法についてどう思いますか?私はそれをテストしますが、何かアドバイスやヒント(私が間違っている場合は)私に答えを与えてはいけないことができませんでした:)


フィボナッチ数列の各新しい用語が前の二つの用語を追加することによって生成されます。 1及び2から出発して、最初の10の用語は次のようになります

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

の観点を考慮してその値が400万を超えないフィボナッチ配列は、偶数の項の和を求める。

+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(...); 
} 
関連する問題