HDU 1715 大菲波数

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1715

MS我写的比较麻烦,各种进位什么的,学长说用递归加打表就可以搞定。

我的

View Code
 1 #include<stdio.h>
 2 #include<string.h>
 3 #define max 1000
 4 char n1[max],n2[max],n3[max];
 5 void add(char *n1,char *n2,char *n3)
 6 {
 7     memset(n3,0,max);
 8     int len=strlen(n1);
 9     int i;
10     for(i=0;i<len;i++)
11     {
12         n3[i]=n1[i]-'0'+n2[i]-'0'+n3[i];
13         if(n3[i]>=10)
14         {
15             n3[i]=n3[i]-10+'0';
16             n3[i+1]=1;
17         }
18         else n3[i]+='0';
19     }
20     if(n2[i]!=0)n3[i]=n2[i]+n3[i];
21     else if(n3[i]!=0) n3[i]+='0';
22 
23 }
24 void prn(char *p)
25 {
26     int i=strlen(p)-1;
27         for(;i>=0;i--)
28         {
29             printf("%c",p[i]);
30         }
31         printf("\n");
32 }
33 int main()
34 {
35     int i,n,t;
36     scanf("%d",&n);
37     while(n--)
38     {
39         scanf("%d",&t);
40         if(t==1||t==2)
41         {
42             printf("1\n");
43             continue;
44         }
45         memset(n1,0,max);
46         n1[0]='1';
47         memset(n2,0,max);
48         n2[0]='1';
49         for(i=3;i<=t;i++)
50         {
51             add(n1,n2,n3);
52             strcpy(n1,n2);
53             strcpy(n2,n3);
54         }
55         prn(n3);
56     }
57     return 0;
58 }

学长的

View Code
 1 const int N = 1007;
 2 int f[N][217];
 3 int main() {
 4     int i, j;
 5     f[1][0] = f[2][0] = 1;
 6     for(i = 3; i < N; i++) {
 7         for(j = 0; j <= 210; j++)
 8             f[i][j] = f[i-1][j]+f[i-2][j];
 9         int flag = 0;
10         for(j = 0; j <= 210; j++) {
11             int tmp = f[i][j] + flag;
12             flag = tmp/10;
13             f[i][j] = tmp%10;
14         }
15     }
16     //freopen("data.in", "r", stdin);
17     int n, pi;
18     cin >> n;
19     while(n--) {
20         cin >> pi;
21         i = 210;
22         while(f[pi][i] == 0)
23             i--;
24         for(;i >= 0; i--)
25             printf("%d", f[pi][i]);
26         printf("\n");
27     }
28     return 0;
29 }
posted @ 2012-08-03 18:42  时光旅行的懒猫  阅读(482)  评论(1编辑  收藏  举报