【发布时间】:2012-01-25 18:23:59
【问题描述】:
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) 你们如何看待这两种方式?我无法测试它,但是任何建议或提示(如果我错了)不要给我答案:)
斐波那契数列中的每个新项都是通过添加前两项来生成的。从 1 和 2 开始,前 10 个术语将是:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
通过考虑斐波那契数列中值不超过四百万的项,求偶数项之和。
【问题讨论】:
-
呃……什么?一个接一个,我想。 (另外,也许包括问题会有所帮助。)
-
你能写出问题陈述吗?我不明白你的问题