解答:
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
int main() {
char strA[10], strB[10];
int a, b;
int count_A, count_B;
int baseA, baseB; //base表示匹配位数的全1型数字
int PA, PB, result;
while(scanf("%s %d %s %d", strA, &a, strB, &b) != EOF) {
count_A = 0, count_B = 0;
baseA = 0, baseB = 0;
for(int i=0; strA[i]!='\0'; i++) { //数出匹配位数
if(strA[i] == (char)(a+48)) //int转char
count_A++;
}
for(int i=1,j=1; i<=count_A; i++) { //生成全1型
baseA += j;
j *= 10;
}
PA = baseA * a;
for(int i=0; strB[i]!='\0'; i++) {
if(strB[i] == (char)(b+48))
count_B++;
}
for(int i=1,j=1; i<=count_B; i++) {
baseB += j;
j *= 10;
}
PB = baseB * b;
result = PA + PB;
printf("%d\n", result);
}
return 0;
}