题目1003:A+B

这道题难度不大,但是要搞清不同类型之间的转换。废话少说,先上代码

#include<iostream>
#include<string>
using namespace std;
int main(){
    string A,B;
    while(cin>>A>>B){
        long num1=0,num2=0;
        for(int i=0;i<A.length();i++){
            if(A[i]>='0' && A[i]<='9'){
                num1=num1*10+A[i]-'0';
            }
        }
        for(int i=0;i<B.length();i++){
            if(B[i]>='0' && B[i]<='9'){
                num2=num2*10+B[i]-'0';
            }
        }
        if(A[0]=='-'){
            num1=0-num1;
        }
        if(B[0]=='-'){
            num2=0-num2;
        }
        cout<<num1+num2<<endl; 
    }
    return 0;
}
/**************************************************************
    Problem: 1003
    User: hg2013211626
    Language: C++
    Result: Accepted
    Time:0 ms
    Memory:1520 kb
****************************************************************/

根据题目要求,每三个数字之间用,分开,所以我这里用字符串输入。在之前我定义了两个long类型的数据,程序第一步便是把string类型转换成long类型。在这里我用一个for循环,依次判断string的每一个字母,如果满足大于0小于9的,便将其转换成数字,具体方法看上面(很巧妙的方法)然后直接计算即可。

原文地址:https://www.cnblogs.com/huanggen/p/5323293.html