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;
}