zoukankan      html  css  js  c++  java
  • 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
    #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;
    } 
  • 相关阅读:
    迭代器(Iterator)的使用
    xml转array
    linux 常用命令
    yii2 httpClient的用法
    将普通用户添加到sudo
    yii2 注册一个新事件(trigger Event)
    解决IDEA输入法输入中文候选框不显示问题(亲测谷歌拼音完美解决问题)
    5个用/不用GraphQL的理由
    Linux 用户必须知道的 14 个常用 Linux 终端快捷键
    java执行系统命令, 返回执行结果
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9736600.html
Copyright © 2011-2022 走看看