如何在 C# 中打印斐波那契数列的后续第 n 个数字?

How to print the subsequent nth numbers of the Fibonacci series in C#?

我知道之前可能有人问过类似的问题。

我的代码的输出是基于用户输入的数字长度加一:

即如果用户键入“5”,则为 0、1、1、2、3、8。

但是,我试图在用户提供一些数字后打印后续的第 n 个数字。应该是这样的:如果用户输入“5”,那么输出应该是 5, 8, 13, 21, 34, ...

我应该如何修改我的代码来实现这个?

感谢您的帮助。

        Console.WriteLine("Please enter any nth number of the Fibonacci series.");

        string user_num = Console.ReadLine();

        int userNumber = int.Parse(user_num);

        int[] FibNum = new int[userNumber];

        int firstNum = 1;
        Console.Write("{0},", firstNum);

        int secondNum = 1;
        Console.Write("{0},", secondNum);

        int sumNum = 0;

        while (sumNum <= userNumber)
        {
            sumNum = (firstNum + secondNum);
            Console.Write("{0}, ", sumNum);

            firstNum = secondNum;
            secondNum = sumNum;               
        }

        Console.ReadLine(); 

好吧,在用户输入值后要有 firstNumsencondNum,您必须从头开始计算序列。但是您可以在打印前简单地放置一个 if 以检查该值是否大于或等于用户输入然后打印它。否则就忽略它。

 Console.WriteLine("Please enter any nth number of the Fibonacci series.");

    string user_num = Console.ReadLine();

    int userNumber = int.Parse(user_num);

    int[] FibNum = new int[userNumber];

    int firstNum = 1;
    int secondNum = 1;
  if(userNumber<=1){  
    Console.Write("{0},", firstNum);
    Console.Write("{0},", secondNum);
   }
    int sumNum = 0;

    while (sumNum <= userNumber)
    {
        sumNum = (firstNum + secondNum);
        if(sumNum>=userNumber)   //check to filter less values
        Console.Write("{0}, ", sumNum);

        firstNum = secondNum;
        secondNum = sumNum;               
    }

    Console.ReadLine();