C# 显示斐波那契序列
编写了一个程序来计算和显示前20个斐波那契数,顺序如下: 1,1,2,3,5,8,13。。。(每个数字是前两个数字的总和) 问题是显示的数字是从2开始的,序列的第一个和第二个数字没有显示,有人能告诉我需要做什么来纠正这个问题吗 代码:C# 显示斐波那契序列,c#,C#,编写了一个程序来计算和显示前20个斐波那契数,顺序如下: 1,1,2,3,5,8,13。。。(每个数字是前两个数字的总和) 问题是显示的数字是从2开始的,序列的第一个和第二个数字没有显示,有人能告诉我需要做什么来纠正这个问题吗 代码: private void按钮1\u单击(对象发送者,事件参数e) { int-previousNumber=1; int currentNumber=1; int nextNumber=1; 虽然(currentNumber我建议仔细跟踪逻辑并预测计算机在每一步将
private void按钮1\u单击(对象发送者,事件参数e)
{
int-previousNumber=1;
int currentNumber=1;
int nextNumber=1;
虽然(currentNumber我建议仔细跟踪逻辑并预测计算机在每一步将做什么。由于错误影响第一次输出,因此您不必查看太多语句来遇到问题。这是程序员的基本技能,因此花时间是值得的,特别是因为这听起来像hom作业。开始时,您需要在下一次数字计算之前显示当前数字两次。此外,您还需要在下一次数字计算之前移动数字显示。此外,下一个数字应该是前一个数字+当前数字。我已对下面的代码进行了更改,可以使用
private void button1_Click(object sender, EventArgs e)
{
int previousNumber = 1;
int currentNumber = 1;
int nextNumber = 1;
textBox1.AppendText(Convert.ToString(currentNumber) + " ");
while (currentNumber <= 11000)
{
textBox1.AppendText(Convert.ToString(currentNumber) + " ");
nextNumber = previousNumber + currentNumber;
previousNumber = currentNumber;
currentNumber = nextNumber;
nextNumber = previousnNumber + currentNumber;
}
}
private void按钮1\u单击(对象发送者,事件参数e)
{
int-previousNumber=1;
int currentNumber=1;
int nextNumber=1;
textBox1.AppendText(Convert.ToString(currentNumber)+“”);
而(currentNumber由于斐波那契曲线中的前两位是种子值(1和1或0和1),您应该先打印这些值,然后计算下一个值
我会简化代码。你可以在
int initialSeed=1;
int currentNumber=1;
//写入种子值
Write(“{0}{1}”,initialSeed,currentNumber);
虽然(currentNumber只需更改int currentNumber=0;
不要误会我的意思,但我认为在这种情况下,如果您在任何地方设置断点,使用调试器并逐步完成您的程序,您可以了解更多信息-查看发生了什么并不难,您应该对这种推理有一定的了解我看一下你的3个变量,然后想一想其中的几行(例如:你真的需要nextNumber++
?,你真的需要nextNumber
变量吗?)为什么不在while
循环之前打印previousNumber
和currentNumber
?
private void button1_Click(object sender, EventArgs e)
{
int previousNumber = 1;
int currentNumber = 1;
int nextNumber = 1;
textBox1.AppendText(Convert.ToString(currentNumber) + " ");
while (currentNumber <= 11000)
{
textBox1.AppendText(Convert.ToString(currentNumber) + " ");
nextNumber = previousNumber + currentNumber;
previousNumber = currentNumber;
currentNumber = nextNumber;
nextNumber = previousnNumber + currentNumber;
}
}
int initialSeed = 1;
int currentNumber = 1;
//Write seed values
Console.Write("{0} {1} ", initialSeed, currentNumber);
while (currentNumber <= 11000)
{
currentNumber += currentNumber;
Console.Write(currentNumber + " ");
}