云中烛火

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 1 #include <stdio.h> 
 2 #include <string.h> 
 3 #define N 200
 4 
 5 
 6 char* largeSum(char s1[200],char s2[200]){
 7     int a[N]={0},b[N]={0},l1,l2,c,k,i; 
 8     char result[N];
 9     char *result1=result;
10     l1=strlen(s1); 
11     l2=strlen(s2); 
12     if(l1<l2) k=l2; 
13     else 
14         k=l1;
15     c=k; 
16     for(i=0;i<l1;k--,i++)
17          a[k]=s1[l1-1-i]-'0'; 
18          
19     for(k=c,i=0;i<l2;k--,i++)     
20         b[k]=s2[l2-1-i]-'0'; 
21         
22     
23     for(i=c;i>=0;i--){
24         a[i]+=b[i]; 
25         if(a[i]>=10){
26             a[i]-=10; 
27             a[i-1]++;
28         } 
29     } 
30     
31     int y=0;
32     int yy=0;
33     for(i=0;i<=c;i++){
34         if(a[i]==0)
35             y++;
36         else break;
37     }
38     for(i=y,yy=0;i<=c;i++,yy++){
39         result[yy]=(char)(a[i]+48);
40     }
41     result[yy]='\0';
42     return result1;
43         
44 } 
45 
46 
47 int main() {
48     char f[200][200];
49     int x;
50     strcpy(f[0],"1");
51     strcpy(f[1],"2");
52     for(x=2;x<200;x++){
53         strcpy(f[x],largeSum(f[x-1],f[x-2]));
54         printf("f[%d]=%s\n",x,f[x]);
55     }
56     return 0;
57 }

 

posted on 2013-04-27 11:42  云中烛火  阅读(249)  评论(0)    收藏  举报