Skip to content

1016 部分A+B

Statement

Metadata

  • 作者: CHEN, Yue
  • 单位: 浙江大学
  • 代码长度限制: 16 KB
  • 时间限制: 150 ms
  • 内存限制: 64 MB

正整数 A 的“D_A(为 1 位整数)部分”定义为由 A 中所有 D_A 组成的新整数 P_A。例如:给定 A = 3862767D_A = 6,则 A 的“6 部分”P_A 是 66,因为 A 中有 2 个 6。

现给定 AD_ABD_B,请编写程序计算 P_A + P_B

输入格式

输入在一行中依次给出 AD_ABD_B,中间以空格分隔,其中 0 < A, B < 10^{9}

输出格式

在一行中输出 P_A + P_B 的值。

输入样例 1

3862767 6 13530293 3

输出样例 1

399

输入样例 2

3862767 1 13530293 8

输出样例 2

0

鸣谢用户 George Hu 修正数据范围!

Solution

#include <bits/stdc++.h>
using namespace std;
int main() {
    int a, b, tot1 = 0, tot2 = 0, i, j, len;
    string s1, s2;
    cin >> s1 >> a >> s2 >> b;
    // cout<<s1<<endl<<a<<endl<<s2<<endl<<b<<endl;
    len = s1.size();
    for (i = 0, j = 1; i < len; i++) {
        if (s1[i] - '0' == a) {
            tot1 += a * j, j *= 10;
            // cout<<tot1<<endl;
        }
    }
    // cout<<tot1<<endl;
    len = s2.size();
    for (i = 0, j = 1; i < len; i++) {
        if (s2[i] - '0' == b) {
            tot2 += b * j, j *= 10;
        }
    }
    // cout<<tot2<<endl;
    cout << tot1 + tot2 << endl;
}

Last update: May 4, 2022
Back to top