B1016 部分A+B (15分)

B1016 部分A+B (15分)

输入格式:

输入在一行中依次给出 A、DA、B、DB,中间以空格分隔,其中
\(0<A,B<10^10\)

输出格式:

在一行中输出 PA+PB的值。

输入样例 1:

3862767 6 13530293 3

输出样例 1:

399

输入样例 2:

3862767 1 13530293 8

思路

关键是首先处理出,只含有DA的字符串。
然后将该字符串转化为整数相加。
使用c++的特性

c++11 数值类型和字符串的相互转换 - 农民伯伯-Coding - 博客园 https://www.cnblogs.com/gtarcoder/p/4925592.html

to_string()可以数字转为字符串

/*字符串(string)转为数字*/
std::string str = "1000";
int val = std::stoi(str);
long val = std::stol(str);
float val = std::stof(str);
/*字符串(char*)转为数字*/
atoi: 将字符串转换为 int
atol: 将字符串转换为long
atoll:将字符串转换为 long long
atof: 将字符串转换为浮点数

AC代码

#include<bits/stdc++.h>
using namespace std;
int main(void){
    string a,b;
    char da, db;
    int m,i=0;
    cin >> a >> da >> b >> db;
    while(i<a.length()) {
        if(a[i] != da){
            a.erase(a.begin() + i);
            i--; 
        }
        i++;
    }
    //cout <<a<<endl;/*取得对应字符串成功*/
    i=0;
    while(i<b.length()) {
        if(b[i] != db){
            b.erase(b.begin() + i);
            i--; 
        }
        i++;
    }
    //cout <<b<<endl;/*取得对应字符串成功*/
    
    if(a!="" && b!=""){/* stol 函数对空字符串报错*/
        m =stol(a) + stol(b);
    }
    else{
        if(a==""&& b!=""){
            m=stol(b);
        }
        else if(a=="" && b==""){
            m=0;
        }
        else
            m=stol(a);
    }
    printf("%d",m);
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/lingr7/p/10300721.html