题目描述:
正整数 A A A 的“ D A D_A DA(为 1 位整数)部分” 定义为由 $A $中所有组成的新整数 。例如:给定 A = 3862767 A=3862767 A=3862767, D A = 6 D_A=6 DA=6,则 A 的“ 6 6 6”部分”是 66 66 66,因为 A A A中有 2 2 2个 6 6 6。
现给定
A
A
A,
D
A
D_A
DA,
B
B
B,
D
B
D_B
DB
请编写程序计算
P
A
+
P
B
P_A+P_B
PA+PB。
输入格式:
输入在一行中依次给出 ,中间以空格分隔,其中 0 < A 0<A 0<A, B < 1 0 10 B<10^{10} B<1010 。
输出格式:
在一行中输出 P A + P B P_A+P_B PA+PB的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
#include <iostream>
#include <string>
using namespace std;
//以输入示例:3862767 6 13530293 3 为例子
int main(){
string a,b,da,db; //声明string类型的字符串
cin>>a>>da>>b>>db; //输入a,da,b,db
string pa = "0",pb = "0"; //声明并初始化pa,pb
for(int i = 0; i<a.length(); i++){
if(a[i]==da[0]) //da[0]表示da的值,为6
pa=pa+da; //进行string字符串拼接,这里最终得到的结果是066
}
for(int i = 0; i<b.length(); i++){
if(b[i]==db[0]) //同理
pb=pb+db; //得到0333
}
cout<<stoi(pa)+stoi(pb); //这里进行string转int的语句,并相加
//stoi()函数最终将pa转换为66,将pb转换为333,忽略了前导0。可以看出用string较为简单
}