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
思路:
字符串模拟,做好相应的字符转换就好
#include#include #include #include using namespace std;int main(){ string num1,num2; while(cin>>num1>>num2) { //判断正负号 int flag1 = 1,flag2 = 1; if(num1[0] == '-') flag1 = -1; if(num2[0] == '-') flag2 = -1; //判断两数字的长度 int len1=0,len2=0; for(int i = 0;i < num1.length();i++) if(num1[i]>='0'&&num1[i]<='9') len1++; for(int i = 0;i < num2.length();i++) if(num2[i]>='0'&&num2[i]<='9') len2++; //分别求出两个数的绝对值 __int64 number1=0,number2=0; for(int i = 0;i < num1.length();i++) { if(num1[i]>='0'&&num1[i]<='9') { number1 += (num1[i]-'0')*pow(10,--len1); } } for(int i = 0;i < num2.length();i++) { if(num2[i]>='0'&&num2[i]<='9') { number2 += (num2[i]-'0')*pow(10,--len2); } } number1 *= flag1; number2 *= flag2; printf("%I64d\n",number1+number2); } return 0;}