您的位置:首页 > 其它

hdoj2070斐波那契数列

2015-08-03 16:19 239 查看
没有一把过,是__int64的问题(在我的电脑上是__int64_t),其实用long long int 也一样啦。

有个小技巧,遇到这种大数处理,可以先存起来,不必等到输入的时候再计算。

[code]#include <stdio.h>
#include "string.h"
long long int s[51];
int n;
int main() {
    memset(s, 0, 51);
    s[1]=1;
    for(int i=2;i<51;i++){
        s[i]=s[i-1]+s[i-2];
    }
    while (scanf("%d",&n)==1&&n!=-1) {
        printf("%lld\n",s
);
    }
    return 0;
}


再贴上我用递归做的,超时代码,警醒世人==

[code]#include <stdio.h>

long long int fb(int n){
    if(n==0) 
      return 0;
    if(n==1)
      return 1;
    else 
      return fb(n-1)+fb(n-2);
}
int main() {
    int n;
    while (scanf("%d",&n)==1&&n!=-1) {
        printf("%lld\n",fb(n));
    }
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: