有一座高度是n级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。
#include<stdio.h>
/*自顶向下递归调用法int f(int i)
{
if(i==1)
return 1;
else if(i==2)
return 2;
else
return f(i-1)+f(i-2);
}
int main()
{
int n;
printf("input the number:");
scanf("%d",&n);
printf("%d\n",f(n));
return 0;
}
*/
/*自底向上动态规划法
int main()
{
int i=1,k;
int j=2;
int temp=0;
printf("input the number:");
scanf("%d",&k);
for(k=3;k<=10;k++){
temp=i+j;
i=j;
j=temp;
}
printf("%d\n",temp);
return 0;
}
*/
递归调用算法的时间复杂的O(2的n次方),动态规划算法时间复杂的O(n)。