http://acm.hdu.edu.cn/showproblem.php?pid=2046
分析第N位,有两种形式1.竖着(F(N-1)),2横着(F(N-2)
所以F(N) = F(N-1) + F(N-2)
N<=50 这里应该用double
代码如下:
#include <stdio.h> int main() { int n,i; double a[60]; a[0]=1; a[1]=1; a[2]=2; for (i=3; i<54; i++) { a[i]=a[i-1]+a[i-2]; } while (scanf("%d",&n)!=EOF) { printf("%.0f\n",a[n]); } return 0; }