九度oj 1003 A+B 2010年浙江大学计算机及软件工程研究生机试真题
题目1003:A+B
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:12812
解决:5345
- 题目描述:
-
给定两个整数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年浙江大学计算机及软件工程研究生机试真题
- 分析:
- 大数的缩减版
1 #include<iostream> 2 #include<queue> 3 #include<cstdio> 4 #include<cstring> 5 #include<cmath> 6 #include<algorithm> 7 using namespace std; 8 long long a,b; 9 void change(string s,long long &a){ 10 int f=1,len=s.length(),i=0; 11 if(s[i]=='-'){ 12 f=-1; 13 i++; 14 } 15 int j=0; 16 a=0; 17 for(;i<len;i++){ 18 if(s[i]==',') 19 continue; 20 a*=10; 21 a+=s[i]-'0'; 22 } 23 a*=f; 24 } 25 int main(){ 26 string s; 27 while(cin>>s){ 28 change(s,a); 29 cin>>s; 30 change(s,b); 31 cout<<a+b<<endl; 32 } 33 return 0; 34 }