c#作业,求大神,先给20,后面还有

2025-06-26 16:18:13
推荐回答(4个)
回答1:

课本上的提示,可能让你写个递归:

static void Main(string[] args)
{
    for (int i = 1; i <= 10000; i++)
    {
        Console.Write("{0,15}", F(i));//输出一个数,这个数占15个位置
        if (i % 4 == 0)
            Console.WriteLine();//每4个换一行
    }
    Console.ReadKey();
}
//第n个数
private static int F(int n)
{
    if (n == 1 || n == 2)
        return 1;
    else
        return F(n - 1) + F(n - 2);
}

回答2:

//我正好也在做这道题,楼上的大神代码我测试了一遍,有一些小缺陷,当fibonncci值>10000时无法停止,以下是我修改过的代码:
private static int F(int n)
{
    if (n == 1 || n == 2)
        return 1;
    else
        return F(n - 1) + F(n - 2);
}
static void Main(string[] args) 
{
       int i = 1;
       while (F(i) < 10000)
      {
          Console.Write("{0,10}", F(i));//输出一个数,这个数占10个位置
          if (i % 5 == 0)
          Console.WriteLine();//每5个换一行
          i++;
      }
      console.ReadKey;
}

回答3:

static void Main(string[] args)

        {

            List list = new List();

            int num = 0;

            while (num <= 10000)

            {

                if (list.Count == 0)

                {

                    num = 1;

                }

                else if (list.Count == 1)

                {

                    num = 1;

                }

                else

                {

                    num = list[list.Count - 1] + list[list.Count - 2];

                }

                list.Add(num);

                Console.WriteLine(num);

            }

            Console.ReadLine();

        }


回答4:

用两个函数实现,应该可以解决问题
static Int32 fibo(Int32 n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return fibo(n - 1) + fibo(n - 2);
}
}
static void disfibo()
{
Int32 i = 1,k=0;
Int32 res=fibo(i);
while (res< 10000)
{
Console.Write(" {0}",res);
i++;
k++;
if (k % 5 == 0)
Console.Write("\n");
res = fibo(i);
}
return;
}