在C#中递归打印一串斐波那契

Mar*_*rin 5 c# recursion fibonacci

没有while循环可以做到吗?

static void Main(string[] args)
{
    Console.WriteLine("Please enter a number");
    int number = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine(" #" + Fibonacci(number));
}

public static int Fibonacci(int number)
{
    if (number <= 1)
    {
        return 1;
    }
    else
    {
        return Fibonacci(number - 2) + Fibonacci(number - 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

我甚至无法Console.WriteLine在基本案例的主体中添加一个,因为它被执行[次数]次数; 不知道怎么做没有循环...

Gus*_*Gus 19

static void Main(string[] args)
{
    Console.WriteLine("Please enter a number");
    int number = Convert.ToInt32(Console.ReadLine());
    Fibonacci(0, 1, 1, number);
}   

public static void Fibonacci(int a, int b, int counter, int number)
{
    Console.WriteLine(a);
    if (counter < number) Fibonacci(b, a+b, counter+1, number);
}
Run Code Online (Sandbox Code Playgroud)

  • `public static void Fibonacci(int a, int b, int number) { Console.WriteLine(a); if (number &gt; 1) Fibonacci(b, a+b, --number); }` (3认同)

小智 7

public static int Fibonatchi(int position) {

    if(position == 0) {
        return 1;
    }
    if(position == 1) {
        return 1;
    } else {
        return Fibonatchi(position - 2) + Fibonatchi(position - 1);
    }
}
Run Code Online (Sandbox Code Playgroud)