PAT (Basic Level) Practice 乙级 1016 部分A+B

PAT (Basic Level) Practice 乙级 1016

PAT (Basic Level) Practice 乙级 1016 部分A+B

思路:找到目标数字的每一位数字与之后输入的数相等的数字个数,求出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;
	}