C# 求斐波那契数列的前10个数字 :1 1 2 3 5 8 13 21 34 55

//C# 求斐波那契数列的前10个数字 :1 1 2 3 5 8 13 21 34 55

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;

  namespace ConsoleTest
  {
   class Program
 {
static void Main(string[] args)
{
    OutPut4();
}

//方法1,使用while循环


public static void OutPut1()
{

    int sum = 0;  //输出的值
    int num1 = 0;
    int num0 = 0;
    int i = 0;//计数器
    while (i < 10)
    {

        if (i == 0)
        {
            sum = num0 = 1;
        }
        else if (i == 1)
        {
            sum = num1 = 1;
        }
        else
        {
            sum = num1 + num0;
            num0 = num1;
            num1 = sum;
        }
        Console.WriteLine(sum);
        i++;
    }
    Console.Read();

}


//方法2,使用for循环
public static void OutPut2()
{
    int num = 1;
    int prev = 0;
    for (int i = 0; i < 10; i++)
    {
        Console.WriteLine(num.ToString());//在这里输出或者存起来
        int temp = num;
        num += prev;
        prev = temp;
    }
    Console.Read();
}

//方法3,使用数组
public static void OutPut3()
{
    var numArray = new int[10];
    int i = 0;
    while (i < 10)
    {

        if (i == 0)
        {
            numArray[i] = 1;
        }
        else if (i == 1)
        {
            numArray[i] = 1;
        }
        else
        {
            numArray[i] = numArray[i - 1] + numArray[i - 2];
        }
        Console.WriteLine(numArray[i]);
        i++;
    }
    Console.Read();
}

//方法4,使用递归循环
public static void OutPut4()
{
    for (int i = 0; i < 10; i++)
    {
        Console.WriteLine(Calc(i));
    }
    Console.Read();
}

public static int Calc(int num)
{
    if (num == 0 || num == 1)
    {
        return 1;
    }
    return Calc(num - 1) + Calc(num - 2);
          }
      }
  }
posted @ 2015-04-25 11:00  renzaijianghu  阅读(1642)  评论(0编辑  收藏  举报