九度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 }
原文地址:https://www.cnblogs.com/Deribs4/p/4288882.html