题目:
假设你正在爬楼梯。需要n阶你才能到达楼顶。
每次你可以爬1或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
思路:
我开始是写了一个函数计算爬一层和爬二层的个数,之后排列求和,但是超范围了,后来改了范围,但是结果不对,,,,
也不知道为啥,
后来看了结果越看越眼熟,这不是斐波那契数列吗?
之后就会嘞
结果代码:
int climbStairs(int n) {
//int n,j;
int sum=0;
//scanf("%d",&n);
int f_1=1;
int f_2=2;
int f_n=0;
//int f_n_1=0;
if(n==0||n==1||n==2)
{
return n;
}
for(int i=1;i<=n-2;i++)
{
f_n=f_1+f_2;
//f_n_1=f_n+f_2;
f_1=f_2;
f_2=f_n;
}
return f_n;
// return 0;
}
再接再励吧!!!!!!!
脑袋空空。
如果有更好的方案,请赐教,感谢!