【问题标题】:Euler 2. 2 methods how to call each one?Euler 2. 2个方法中的每一个如何调用?
【发布时间】: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, ...

通过考虑斐波那契数列中值不超过四百万的项,求偶数项之和。

【问题讨论】:

  • 呃……什么?一个接一个,我想。 (另外,也许包括问题会有所帮助。)
  • 你能写出问题陈述吗?我不明白你的问题

标签: c# fibonacci


【解决方案1】:

让它们都像这样static 函数:

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

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

然后像这样从Main() 给他们打电话:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 2012-11-08
    • 2017-12-08
    • 2011-04-03
    相关资源
    最近更新 更多