(step3.1.1)hdu 2041

来源:互联网 发布:熙颐影业 知乎 编辑:程序博客网 时间:2024/05/29 07:56

题目大意:输入一个整数t,表示测试用例数。接着输入一个整数M表示第M级台阶。求到达M级台阶的走法共有多少种


解题思路:

1、递推的题目,前面几个数为1,1,2,3,第五个可以这样考虑:有些走法是和到第四个一样的,只是最后加了一步,这样f(5)=f(4)+x,x表示其他的走法,到第五级时不是走两步就是一步,一步刚才已经考虑过了,就是f(4),而最后是走两步的是在第三级开始的,到第三级的走法为f(3),所以f(5)=f(4)+f(3);后面的类似。所以是斐波那契数列f(n)=f(n-1)+f(n-2)

2、对于递归和递推。有一种不成熟的说法就是:

递归就是自己调用自己;
递推是从头向后推;


代码如下:

/* * 2041_1.cpp * *  Created on: 2013年8月12日 *      Author: Administrator */#include <stdio.h>#include <string.h>int main(){int t;scanf("%d",&t);int fib[41];memset(fib,0,sizeof(fib));fib[1] = 1;fib[2] = 1;int i ;for(i = 3 ; i<= 40 ; ++i){fib[i] = fib[i-1] + fib[i-2];}while(t--){int n;scanf("%d",&n);printf("%d\n",fib[n]);}}


原创粉丝点击