1.青蛙一次可以跳1,2,3.。。。n级台阶
2.还是那个方法,找规律,很明显这是一个阶乘,稍微修改下代码即可
class Solution
{
//很明显就是阶乘
//public static int Fibonacci(int n)
//{
// return 1 << --n;
//}
//尾递归
public static int Fibonacci(int n)
{
return Fibonacci(n, 1);
}
private static int Fibonacci(int n, int acc1)
{
if (n == 1) return acc1;//出口改为1
else return Fibonacci(n - 1, acc1*2);
}
//迭代
//private static int Fibonacci(int n)
//{
// if (n <= 2) return n;
// int num1 = 1, num2 = 2;
// int currentnum = 0;
// for (int i = 3; i <= n; i++)
// {
// //1可以理解为一次跳N级
// currentnum = num1 + num2 + 1;
// num1 = num1+num2;
// num2 = currentnum;
// }
// return currentnum;
//}
static void Main(string[] args)
{
Console.Write(Fibonacci(3));
}
}