字符串实现特大整数加法

 

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<stdio.h>
#include<string.h>
int main()
{
    char s1[500],s2[500];
    int i,k,flag;
    int a[500]={0},b[500]={0};
    scanf("%s %s",s1,s2);
    for(i=0;i<strlen(s1);i++)
        a[i]=s1[strlen(s1)-i-1]-'0';//倒置输入并且把char转型为int
    for(i=0;i<strlen(s2);i++)
        b[i]=s2[strlen(s2)-i-1]-'0';
    k = strlen(s1) > strlen(s2) ? strlen(s1) : strlen(s2);
    flag=0;
    for(i=0;i<k;i++)
    {
        flag+=a[i]+b[i];
        a[i]=flag % 10;//进位
        flag=flag/10;
    }
    if(flag==1)//将新增一位1 进位
    {
        printf("1");
    }
    for(i=k-1;i>=0;i--)//倒序打出   
    {                          
        printf("%d",a[i]);
    }                  
    return 0;
}

 

posted @   rebloom000  阅读(262)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示