正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA 。例如:给定 A=3862767,DA=6,则 A的“6 部分”PA是 66,因为 A 中有 2 个 6。
现给定 A、DA、B、DB,请编写程序计算 PA+PB。
输入格式:
输入在一行中依次给出 A、DA、B、DB,中间以空格分隔,其中 0<A,B<10^10。
输出格式:
在一行中输出 PA+PB的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
思路:
此题比较简单,循环读取字符串中的每个字符,遇到相同的字符计数,根据计数返回一个整数类型的PA即可
代码:
//1016 部分A+B
#include<iostream>
using namespace std;
int cal_p(char *a, int b)//将字符串a与da进行对比计算pa
{
int i = 0, count = 0;
while (a[i] != '\0')//循环读取字符串中的数字
{
count = (a[i] - '0') == b ? count+1:count;//数字相同则增加count
i++;
}
int cal = 0;//计算pa
for (int i = 0; i < count; i++)
{
cal += b;
b *= 10;
}
return cal;
}
int main()
{
char a[11], b[11];
int da, db;
scanf("%s %d %s %d", a, &da, b, &db);
cout << cal_p(a, da)+cal_p(b,db);
return 0;
}
网友评论