九度OJ刷题——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
来源:
2010年浙江大学计算机及软件工程研究生机试真题
这题就是识别出字符串中的负号和数字,将其转换成long类型,再相加得到结果。
源代码:
#include <iostream>
#include <string>
using namespace std;

long string2Long(string s){
    long result = 0;
    if(s[0] == '-'){
        for(int i=0; i<s.length(); i++){
            if(s[i] >= '0' && s[i] <= '9')
                result = result * 10 + (s[i] - '0');
        }
        result = -result;
    }
    else{
        for(int i=0; i<s.length(); i++){
            if(s[i] >= '0' && s[i] <= '9')
                result = result * 10 + (s[i] - '0');
        }
    }
    return result;
}

int main(){
    string A, B;
    while(cin >> A >> B){
        cout << string2Long(A) + string2Long(B) << endl;
    }

    return 0;
}

 

posted on 2017-03-01 20:19  C_haos  阅读(1404)  评论(0编辑  收藏  举报