如何通过添加将数字迭代到限制

时间:2017-10-04 10:46:20

标签: c# iteration sequences

以下是我现在的代码:

for(int i=0; i< 35; ++i)
{
    int a = 1;
    a+=1;
    Console.WriteLine(a);
}

输出结果为:

  

2
  2
  2
  ...

依此类推,直到循环结束。

我想要做的是添加前两个数字来制作巢号,然后一直到34。

3 个答案:

答案 0 :(得分:1)

这就是你如何实现你想要的目标:

//Initializing the elements
int a = 0;
int b = 1;
int c = 1;

Console.WriteLine(a); //Typing the 0'th element
Console.WriteLine(b); //Typing the first element

for(;c <= 34; c = a + b) {
    Console.WriteLine(c); //Typing the actual element
    a = b;
    b = c;
}

答案 1 :(得分:0)

你的意思是通过添加其他数字并将其用作什么来计算到某个数字?逃生条件?就像一个常数一样?

作为逃避条件:

using System;
public class Program
{
    static private int a = 0;
    static private int i = 0;
    public static void Main()
    {
        for (i = 0; i < 100; i++){
            a += i;
            if (a == 595) break;
        }
        Console.WriteLine(i);
    }
}

另外作为常数:

using System;
public class Program
{
    static private int a = 0;
    static private int i = 0;
    static private int d = 1;
    public static void Main()
    {
        for (i = 0; i < 34; i++){
            a += d;
        }
        Console.WriteLine(a);
    }
}

使用这两者似乎都非常不合逻辑:/

编辑:您的问题现在与之前的说法有所不同:D

你想知道为什么不会超过2?因为你初始化for循环的每一步。您需要将初始化移出for的范围。试试这个:

using System;
public class Program
{
    static private int a = 0;
    static private int i = 0;
    static private int d = 1;
    public static void Main()
    {
        int a = 1;
        for(int i=0; i< 34; ++i)
            {
            Console.WriteLine(a);   
            a+=1;

            }
    }
}

我知道你需要从1到34的数字。所以你不能从1开始,立即递增1然后写它,因为它将是2.先写,然后递增。

或者你可以从0开始然后你可以先增加。但也要调整结束条件。

答案 2 :(得分:0)

您在每次迭代时声明一个新变量a,然后向其添加1。由于a的初始值为1,因此每次迭代都会计算1+1。逐步调试调试器中的代码,看看我的意思。

将声明移出循环,您应该看到所需的输出:

int a = 1;
for(int i=0; i< 35; ++i)
{
    a+=1;
    Console.WriteLine(a);
}

有很多教程可以打印出斐波那契序列,例如有两个嵌套的for循环:

for (int i = 0; i < 10; ++i)
{
    int a = 0;
    int b = 1;
    for (int j = 0; j < i; ++j)
    {
        var temp = a;
        a = b;
        b = temp + b;
    }

    Console.WriteLine(a);
}

取自dotnetperls的例子(尽管我稍作编辑)。