PAT (Basic Level) Practice 乙级 1016
思路:找到目标数字的每一位数字与之后输入的数相等的数字个数,求出PA ,同理得到PB ,两次求和。
#include <iostream>
#include<vector>
#include<cstdio>
using namespace std;
int main()
{
int a, b, c, d, sum1 = 0, sum2 = 0, muti1 = 1, muti2 = 1;
cin >> a>> b >> c >> d;
vector<int> v1, v2;
while(a > 1)
{
int temp = a % 10;
v1.push_back(temp);
a /= 10;
}
for(int i = 0; i < v1.size(); i++)
{
if(v1[i] == b)
{
v1[i] = v1[i] * muti1;
sum1 += v1[i];
muti1 *= 10;
}
}
while(c > 1)
{
int temp = c%10;
v2.push_back(temp);
c /= 10;
}
for(int i=0;i < v2.size(); i++)
{
if(v2[i] == d)
{
v2[i] = v2[i] * muti2;
sum2 += v2[i];
muti2 *= 10;
}
}
printf("%d", sum1 + sum2);
return 0;
}