如何在 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();
好吧,在用户输入值后要有 firstNum
和 sencondNum
,您必须从头开始计算序列。但是您可以在打印前简单地放置一个 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();
我知道之前可能有人问过类似的问题。
我的代码的输出是基于用户输入的数字长度加一:
即如果用户键入“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();
好吧,在用户输入值后要有 firstNum
和 sencondNum
,您必须从头开始计算序列。但是您可以在打印前简单地放置一个 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();