Codeup_575_A+B

支援本站缴服务器运行费

问题 B: A+B

时间限制: 1 Sec  内存限制: 32 MB
提交: 966  解决: 511
[提交][状态][讨论版][命题人:外部导入]

题目描述

给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。

输入

输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。

输出

请计算A+B的结果,并以正常形式输出,每组数据占一行。

样例输入

-234,567,890 123,456,789
1,234 2,345,678

样例输出

-111111101


此题解题的关键在于:使用sprintf()与sscanf();
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define Max 20 
using namespace std;

int main(void)
{
    freopen("in.txt","r",stdin);
    
    char a[Max],a1[Max],b[Max],b1[Max];
    while(scanf("%s%s",a,b)!=EOF)
    {
//        memset(sum,0,sizeof(sum)); 
        int lena,lenb;
        long long sum1=0,suma=0,sumb=0;
        lena=strlen(a); 
        lenb=strlen(b);
        
        for(int x=0,y=0;x<lena;x++)
        {
            if(a[x]!=',')
            {
                a1[y]=a[x];
                y++;
            }
            if(x==lena-1)
                a1[y]='\0';
        }
//        printf("%s\n",a1);
        
        for(int x=0,y=0;x<lenb;x++)
            {
                if(b[x]!=',')
                {
                    b1[y]=b[x];
                    y++;
                }
                if(x==lenb-1)
                    b1[y]='\0';
            }
//            printf("%s\n",b1);
        
        sscanf(a1,"%lld",&suma);
        sscanf(b1,"%lld",&sumb);
        sum1=suma+sumb;
        printf("%lld\n",sum1);
            
    } 
    
    
    fclose(stdin);
    return 0;
}



2346912

猜你喜欢

转载自www.cnblogs.com/phaLQ/p/10056637.html