云中烛火

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

#include <stdio.h>
#include <string.h>
#define N 200
char result[N];

void largeSum(char s1[200],char s2[200]){
    int a[N]={0},b[N]={0},l1,l2,c,k,i;
    l1=strlen(s1);
    l2=strlen(s2);
    if(l1<l2) k=l2;
    else
        k=l1;
    c=k;
    for(i=0;i<l1;k--,i++)
         a[k]=s1[l1-1-i]-'0';
         
    for(k=c,i=0;i<l2;k--,i++)     
        b[k]=s2[l2-1-i]-'0';
        
    
    for(i=c;i>=0;i--){
        a[i]+=b[i];
        if(a[i]>=10){
            a[i]-=10;
            a[i-1]++;
        }
    }
    
    int y=0;
    int yy=0;
    for(i=0;i<=c;i++){
        if(a[i]==0)
            y++;
        else break;
    }
    for(i=y,yy=0;i<=c;i++,yy++){
        result[yy]=(char)(a[i]+48);
    }
    result[yy]='\0';
        
}
int main() {
    char s1[N],s2[N];
    puts("请输入两个大数\n");
    gets(s1);
    gets(s2);
    largeSum(s1,s2);
    printf("%s",result);
    return 0;
}

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