题目:
假设你正在爬楼梯。需要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;}
再接再励吧!!!!!!!
脑袋空空。
如果有更好的方案,请赐教,感谢!