PAT B1016 部分A+B

会有一股神秘感。 提交于 2019-11-28 01:50:15

PAT B1016 部分A+B

题目描述:

  正整数 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

 

参考代码:

 1 /***********************************************
 2 PAT B1016 部分A+B
 3 ***********************************************/
 4 #include <iostream>
 5 
 6 using namespace std;
 7 
 8 long long getP(long long n, int dn) {
 9     long long m = 0;
10     while (n != 0) {
11         if (n % 10 == dn) m = 10 * m + dn;
12         n = n / 10;
13     }
14 
15     return m;
16 }
17 
18 int main() {
19     int da = 0, db = 0;
20     long long a = 0, b = 0;
21     long long pa = 0, pb = 0, c = 0;
22 
23     cin >> a >> da >> b >> db;
24 
25     pa = getP(a, da);
26     pb = getP(b, db);
27     c = pa + pb;
28 
29     cout << c;
30     
31     return 0;
32 }
View Code

 

注意事项:

  无。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!