1016 部分A+B (15分)
正整数 A 的“D A (为 1 位整数)部分”定义为由 A 中所有 D A 组成的新整数 P A 。例如:给定
A=3862767,D A =6,则 A 的“6 部分”P A 是 66,因为 A 中有 2 个 6。现给定 A、D A 、B、D B ,请编写程序计算 P A +P B 。
输入格式: 输入在一行中依次给出 A、D A 、B、D B ,中间以空格分隔,其中 0<A,B<10 10 。
输出格式: 在一行中输出 P A +P B 的值。
输入样例 1: 3862767 6 13530293 3
输出样例 1: 399
输入样例 2: 3862767 1 13530293 8
输出样例 2: 0
#include<iostream>
using namespace std;
int main()
{
string s1,s2;
int count1,count2,tmp1,tmp2;
cin>>s1>>count1;
cin>>s2>>count2;
int a[10]={0},b[10]={0};
int i=0,j=0;
int sum1=0,sum2=0,sum=0;
while(i<s1.length())
{
a[s1[i]-'0']++;
i++;
}
while(j<s2.length())
{
b[s2[j]-'0']++;
j++;
}
tmp1=count1;
while(a[tmp1]!=0)
{
sum1=count1+sum1;
count1=count1*10;
a[tmp1]--;
}
tmp2=count2;
while(b[tmp2]!=0)
{
sum2=count2+sum2;
count2=count2*10;
b[tmp2]--;
}
sum=sum1+sum2;
cout<<sum;
return 0;
}
注意题目中的输入格式,对应输入的数字。