
思路1:
1.怎么进行循环?
采用while(!=0)
2.怎么查找相应的da,db?
通过%10取模进行判断,再/10进行下一次循环
3.怎么进行求和(求pa,pb)?
每一次要*10(上升位数)+da.
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
int da,db;
scanf("%d%d%d%d",&a,&da,&b,&db);
int pa=0;
int pb=0;
while(a!=0||b!=0){
if(a%10==da){
pa=pa*10+da;
}
if(b%10==db){
pb=pb*10+db;
}
b/=10;
a/=10;
}
printf("%d",pa+pb);
return 0;
}
思路二:
1.不采用取模形式
2.采用字符串遍历,与数字比较?
str[i]-'0'==da
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b;
int da,db;
cin>>a>>da>>b>>db;
int pa=0,pb=0;
for(int i = 0; i < a.size(); i++){
if(a[i]-'0'==da){
pa=pa*10+da;
}
}
for(int i = 0; i < b.size(); i++){
if(b[i]-'0'==db){
pb=pb*10+db;
}
}
printf("%d",pa+pb);
return 0;
}
思路三:
1.采用字符数组char a[20]
2.scanf("%s %c %s %c",&a,&da,&b,&db);//输入要空格
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[20],b[20];
char da,db;
scanf("%s %c %s %c",&a,&da,&b,&db);
int pa=0,pb=0;
int j=0;
for(int i = 0; i < strlen(a); i++){
if(a[i]==da){
pa=pa+(da-'0')*pow(10,j++);
}
}
j = 0;
for(int i = 0; i < strlen(b); i++){
if(b[i]==db){
pb = pb + (db-'0')*pow(10,j++);
}
}
printf("%d",pa+pb);
return 0;
}