九度OJ —— 1003

xiaoxiao2021-02-28  103

题目描述: 给定两个整数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 2346912 #include <iostream> #include <string> using namespace std; int main(){ string s1,s2; int i,j; while(cin>>s1>>s2){ int a[20]={0},b[20]={0}; int n1=0,n2=0; int num1=0,num2=0,num=0; int flg1=0,flg2=0; if(s1[0]=='-') flg1=1; if(s2[0]=='-') flg2=1; //判断正负 for(i=0;i<s1.length();i++){ if(s1[i]!=',' && s1[i]!='-'){ a[n1]=s1[i]-48; n1++; } } for(i=0;i<s2.length();i++){ if(s2[i]!=',' && s2[i]!='-'){ b[n2]=s2[i]-48; n2++; } } for(i=0;i<n1;i++) num1=num1*10+a[i]; for(i=0;i<n2;i++) num2=num2*10+b[i]; if(flg1) num1=0-num1; if(flg2) num2=0-num2; num=num1+num2; cout<<num<<endl; } return 0; }

注意: 当char赋值给int是,要减去48,开始没有加上,导致找了好久的错

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

最新回复(0)