HDOJ 3787 A+B(字符串数模拟)

    xiaoxiao2021-03-25  128

    A+B

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5108    Accepted Submission(s): 2910 Problem Description 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。 现在请计算A+B的结果,并以正常形式输出。   Input 输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。   Output 请计算A+B的结果,并以正常形式输出,每组数据占一行。   Sample Input -234,567,890 123,456,789 1,234 2,345,678   Sample Output -111111101 2346912   Source 浙大计算机研究生复试上机考试-2010年

    思路:大数模拟。

    代码:

    #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<cstdlib> using namespace std; int main() { char a[20],b[20]; while(~(scanf("%s%s",a,b))) { // cout<<a<<" "<<b<<endl; int alen=strlen(a),blen=strlen(b); // cout<<alen<<" "<<blen<<endl; int num1=0,num2=0; for(int i=0;i<alen;i++){ if(a[i]>='0'&&a[i]<='9'){ num1=num1*10+a[i]-'0'; } } if(a[0]=='-')num1=-num1; for(int i=0;i<blen;i++){ if(b[i]>='0'&&b[i]<='9'){ num2=num2*10+b[i]-'0'; } } if(b[0]=='-')num2=-num2; // cout<<num1<<" "<<num2<<endl; long long res=num1+num2; printf("%lld\n",(num1+num2)); // cout<<num1+num2<<endl; } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-5026.html

    最新回复(0)