九度OJ刷题——1003:A+B
- 题目描述:
-
给定两个整数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
- 来源:
- 2010年浙江大学计算机及软件工程研究生机试真题
- 这题就是识别出字符串中的负号和数字,将其转换成long类型,再相加得到结果。
- 源代码:
-
#include <iostream> #include <string> using namespace std; long string2Long(string s){ long result = 0; if(s[0] == '-'){ for(int i=0; i<s.length(); i++){ if(s[i] >= '0' && s[i] <= '9') result = result * 10 + (s[i] - '0'); } result = -result; } else{ for(int i=0; i<s.length(); i++){ if(s[i] >= '0' && s[i] <= '9') result = result * 10 + (s[i] - '0'); } } return result; } int main(){ string A, B; while(cin >> A >> B){ cout << string2Long(A) + string2Long(B) << endl; } return 0; }