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>
#include <cstdio>
#include <string>
using namespace std;
int pow1(int a){
int s = 1;
for(int i = 0; i < a; i++) s *= 10;
return s;
}
int main(){
string a, b;
char da, db;
int m=0, n=0;
int num1 = 0, num2 = 0;
cin >> a >> da >> b >> db;
for(int i = 0; i < a.size(); i++){
if(da == a[i]) num1++;
}
for(int i = 0; i < b.size(); i++){
if(db == b[i]) num2++;
}
for(int i = 0; i < num1; i++) m += (da - '0') * pow1(i);
for(int j = 0; j < num2; j++) n += (db - '0') * pow1(j);
cout << m+n;
return 0;
}
本文详细解析了1016部分A+B算法题目的实现过程,包括读取两个大整数A和B及其指定数字D,然后找出各自包含的D的数量并计算由这些D组成的新的整数P,最后输出PA+PB的值。
413

被折叠的 条评论
为什么被折叠?



