1016 部分A+B

1016 部分A+B (15分)
 

正整数 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<1010​​。

输出格式:

在一行中输出 PA​​+PB​​ 的值。

输入样例 1:

3862767 6 13530293 3
 

输出样例 1:

399
 

输入样例 2:

3862767 1 13530293 8
 

输出样例 2:

0

   

      题目很简单,直接上代码

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 int main () 
 5 {
 6    string A,B;
 7    short DA,DB;
 8    long PA=0,PB=0,k1=1,k2=1;
 9    cin>>A>>DA>>B>>DB;
10    for(unsigned int i=0,j=0;i<A.length()||j<B.length();i++,j++)
11    {
12        if(i<A.length()&&A[i]-'0'==DA)
13        {
14            PA+=DA*k1;
15            k1*=10;
16        }
17        if(j<B.length()&&B[i]-'0'==DB)
18        {
19            PB+=DB*k2;
20            k2*=10;
21        }
22    }
23    cout<<PA+PB<<endl;
24    return 0;
25 }

ac了

 

posted @ 2020-05-01 12:13  和运气碰碰  阅读(156)  评论(0编辑  收藏  举报