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;
}
139

被折叠的 条评论
为什么被折叠?



