PAT1016 部分A+B

PAT1016 部分A+B

题目

正整数AA的“DAD_A(为 1 位整数)部分”定义为由AA中所有DAD_A组成的新整数PAP_A。例如:给定A=3862767A=3862767DAD_A=6,则AA的“6部分”PAP_A是 66,因为AA中有2个6。

现给定AADAD_ABBDBD_B,请编写程序计算PA+PBP_A+P_B

输入格式

输入在一行中依次给出AADAD_ABBDBD_B,中间以空格分隔,其中0<A0<A,B<1010B<10^{10}

输出格式

在一行中输出PAP_A+PBP_B的值。

输入样例

1
3862767 6 13530293 3

输出样例

1
399

输入样例2

1
3862767 1 13530293 8

输出样例2

1
0

思路

遍历数字(最好用字符串或字符数组来保存),每找到一个加一位,直到遍历完后相加。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//pat1016
#include <stdio.h>
#include <cstring>
using namespace std;
int main(int argc, char const *argv[])
{
char a[10], c[10];
int b, d;
scanf("%s %d %s %d", &a, &b, &c, &d);
long long bb = 0, dd = 0;
for(int i = 0; i < strlen(a); i++)
{
if (a[i] - 48 == b)
{
bb = 10 * bb + b;
}
}
for(int i = 0; i < strlen(c); i++)
{
if (c[i] - 48 == d)
{
dd = 10 * dd + d;
}
}
printf("%d", bb + dd);
return 0;
}
文章作者: Shengyaqingfeng
文章链接: https://creazyboyone.github.io/pat1016/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shengyaqingfeng's Blog