码迷,mamicode.com
首页 > 其他好文 > 详细

1003.A+B

时间:2018-10-02 17:47:27      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:整数   表示   pac   计算   font   end   lse   clu   cst   

题目描述:
给定两个整数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
#include<iostream>
#include<cstring>
using namespace std;

int change(string s){
    int num=0,i;
    if(s[0]!=-){
    if(s.size()<=3) {
        for(i=0;i<s.size();i++){
            num=num*10+(s[i]-0);
        }
    }
    else if(s.size()<=7){
        int pos=s.find(,);
        for(i=0;i<pos;i++){
            num=num*10+(s[i]-0);
        }
        num*=1000;
        int num1=0;
        for(i=pos+1;i<s.size();i++){
            num1=num1*10+(s[i]-0);
        }
        num+=num1;
    }
    else {
        int pos=s.find(,);
        for(i=0;i<pos;i++){
            num=num*10+(s[i]-0);
        }
        int num1=0,num2=0;
        num*=1000000;
        for(i=pos+1;i<pos+4;i++){
            num1=num1*10+(s[i]-0);
        }
        for(i=pos+5;i<s.size();i++){
            num2=num2*10+(s[i]-0);
        }
        num=num+num1*1000+num2;
    }
}
else {
        s=s.substr(1,s.size()-1);
        if(s.size()<=3) {
        for(i=0;i<s.size();i++){
            num=num*10+(s[i]-0);
        }
    }
    else if(s.size()<=7){
        int pos=s.find(,);
        for(i=0;i<pos;i++){
            num=num*10+(s[i]-0);
        }
        num*=1000;
        int num1=0;
        for(i=pos+1;i<s.size();i++){
            num1=num1*10+(s[i]-0);
        }
        num+=num1;
    }
    else {
        int pos=s.find(,);
        for(i=0;i<pos;i++){
            num=num*10+(s[i]-0);
        }
        int num1=0,num2=0;
        num*=1000000;
        for(i=pos+1;i<pos+4;i++){
            num1=num1*10+(s[i]-0);
        }
        for(i=pos+5;i<s.size();i++){
            num2=num2*10+(s[i]-0);
        }
        num=num+num1*1000+num2;
    }
    num=0-num;
}
    return num;
}

int main(){
    string a,b;
    while(cin>>a>>b){
        int c=change(a)+change(b);
        cout<<c<<endl;
    }
    return 0;
} 

 

1003.A+B

标签:整数   表示   pac   计算   font   end   lse   clu   cst   

原文地址:https://www.cnblogs.com/bernieloveslife/p/9736600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!