Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 显示斐波那契序列_C# - Fatal编程技术网

C# 显示斐波那契序列

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我建议仔细跟踪逻辑并预测计算机在每一步将

编写了一个程序来计算和显示前20个斐波那契数,顺序如下:

1,1,2,3,5,8,13。。。(每个数字是前两个数字的总和)

问题是显示的数字是从2开始的,序列的第一个和第二个数字没有显示,有人能告诉我需要做什么来纠正这个问题吗

代码:

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 + " ");
}