【PAT乙级】【C++】 1016 部分A+B (15 分)

题目描述:

正整数 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较为简单
}
上一篇:将a,b,c三个节点链接成一个单向链表,并输出链表节点中的数据


下一篇:手机射频前端器件