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);
}
}
这是我到目前为止所提出的。我想找出两种方法来提出答案。
1)你怎么称呼这两种方法?
2)你们对这两种方式有何看法?我无法测试它,但任何建议或提示(如果我错了)不要给我答案:))
Fibonacci序列中的每个新术语都是通过添加前两个术语生成的。从1和2开始,前10个术语将是:
1,2,3,5,8,13,21,34,55,89,......
通过考虑Fibonacci序列中的值不超过四百万的项,找到偶数项的总和。
答案 0 :(得分:1)
将它们设为static
这两个函数:
static long fibonacci1()
{
...
return answer;
}
static long fibonacci2()
{
...
return answer;
}
并从Main()
这样调用它们:
{
long a1 = fibonacci1();
long a2 = fibonacci2();
Console.Writeline(...);
}