题目1003:A+B

来源:互联网 发布:交换机互联 网络名 编辑:程序博客网 时间:2024/05/02 01:13

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:13208

解决:5518

题目描述:
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。
输入:
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
输出:
请计算A+B的结果,并以正常形式输出,每组数据占一行。
样例输入:
-234,567,890 123,456,7891,234 2,345,678
样例输出:
-1111111012346912
来源:

2010年浙江大学计算机及软件工程研究生机试真题


由于给出了输入条件(-10^9 < A,B < 10^9),先考虑是否可以直接相加,因为本题没有越界风险,即只需要把输入的变成整数,之后直接相加即可。
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <math.h>using namespace std;int reverse(string a){    int x=0;    if(a[0]=='-')    {        for(int i=1;i<a.length();i++)            if(a[i]>='0'&&a[i]<='9')                x = x*10+a[i]-'0';        x = -x;    }    else        for(int i=0;i<a.length();i++)            if(a[i]>='0'&&a[i]<='9')                x = x*10+a[i]-'0';    return x;}int main(){    string a,b;    while(cin>>a>>b)    {        cout<<reverse(a)+reverse(b)<<endl;    }    return 0;}


0 0
原创粉丝点击