题目:
输入格式:
输出格式:
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
思路:
将输入的数字用字符串接收,再把字符串和字符比较,有符合的字符则进行拼接,再转换为数字。
代码:
#include <iostream>
#include <cstring>
#include <string>
#include <stdlib.h>
using namespace std;
int main(){
string A, B;
char DA, DB;
string PA = "";
string PB = "";
cin >> A >> DA >> B >> DB;
for(int i = 0; i < strlen(A.c_str()); ++i){
if(A[i] == DA){
PA += DA;
}
}
for(int i = 0; i < B.length(); ++i){
if(B[i] == DB){
PB += DB;
}
}
int s = 0;
if(strlen(PA.c_str()) != 0){
s += atoi(PA.c_str());
}
if(strlen(PB.c_str()) != 0){
s += stoi(PB);
}
cout << s;
return 0;
}
其他思路:
看了其他解析,可以直接接收数字,再将数字的各个数位的数值进行比较,最后转化为指定的数字
#include<stdio.h>
int main(int argc, char const *argv[])
{
long long a,b,sum1=0,sum2=0;
int num1,num2;
scanf("%lld%d%lld%d",&a,&num1,&b,&num2);
while(a){
if (a%10 == num1) sum1=sum1*10+num1;
a=a/10;
}
while(b){
if (b%10 == num2) sum2=sum2*10+num2;
b=b/10;
}
printf("%lld\n",(sum1+sum2));
return 0;
}
学到和回忆了:
-
C++获取字符串长度 #include <cstring>
strlen(str);
str.length();
-
C++字符串转为数字 #include <cstring>
string str;
char str1 = str.c_str();
atoi(str1);
stoi(str);
-
C++string类型转换为C风格字符串 string str;
char str1 = str.c_str();
-
逐位获取数字的方法
|