#include <stdio.h>
int test(int n)
{
if (n <= 2)
return n;
else
return test(n - 1) + test(n - 2);
}
int main()
{
int n = 1;
scanf_s("%d", &n);
int ret = test(n);
printf("%d\n", ret);
return 0;
}
思路:
当n很小时,n = 1时,有一种走法;n = 2时,有2种走法
当n在增加时,走法就很多了。此时我们假设test(10)是n=10时的10个台阶所有走法,但乐乐一次只能走1阶或者2阶,走1阶时,还剩9阶,那不就是走1阶:test(9)种走法么;当乐乐走两阶,
不就是2阶:test(8)种走法;两个数相加不就是10阶的走法;
也就是当n>2时,test(n) = test(n-1) +test(n-2);