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(为 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<109。


输出格式:

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


输入样例 1:

3862767 6 13530293 3


输出样例 1:

399


输入样例 2:

3862767 1 13530293 8


输出样例 2:

0


直接longlong简单粗暴:


C语言:


#include <stdio.h>
int main() {
  long long a, da, b, db;
  scanf("%lld %lld %lld %lld", &a, &da, &b, &db);
  long long pa = 0, pb = 0;
  while (a != 0) {
    if (da == a % 10) {
      pa = pa * 10 + da;
    }
    a /= 10;
  }
  while (b != 0) {
    if (db == b % 10) {
      pb = pb * 10 + db;
    }
    b /= 10;
  }
  printf("%d", pa + pb);
  return 0;
}


C++:


#include <iostream>
using namespace std;
int main() {
  long long a, da, b, db;
  cin >> a >> da >> b >> db;
  long long pa = 0, pb = 0;
  while (a != 0) {
    if (da == a % 10) {
      pa = pa * 10 + da;
    }
    a /= 10;
  }
  while (b != 0) {
    if (db == b % 10) {
      pb = pb * 10 + db;
    }
    b /= 10;
  }
  cout << pa + pb;
  return 0;
}


相关文章
|
6月前
|
数据安全/隐私保护
1048 数字加密 (20 分)
1048 数字加密 (20 分)
|
6月前
1062 最简分数 (20 分)
1062 最简分数 (20 分)
|
6月前
|
测试技术
1039 到底买不买 (20 分)
1039 到底买不买 (20 分)
L1-070 吃火锅 (15 分)
L1-070 吃火锅 (15 分)
149 0
L1-070 吃火锅 (15 分)
|
C语言 C++
L1-4 寻找250 (10 分)
对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。
766 0
L1-4 寻找250 (10 分)
h0148. 66 (30 分)
h0148. 66 (30 分)
103 0
L1-011 A-B (20 分)
L1-011 A-B (20 分)
162 0
L1-017 到底有多二 (15 分)
L1-017 到底有多二 (15 分)
144 0
L1-055 谁是赢家 (10 分)
L1-055 谁是赢家 (10 分)
112 0
L1-018 大笨钟 (10 分)
L1-018 大笨钟 (10 分)
103 0