PAT乙级 1016.部分A+B

19

简单题,统计计数即可

题目


原题链接

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



解析


直接统计计数然后计算机课,最大只有10位,可以用long long计算

代码


C++解法


#include <iostream>
using namespace std;

int main() {
    cin.tie(0);
    cin.sync_with_stdio(false);

    string a, b;
    char ad, bd;
    long long ac = 0, bc = 0;

    cin >> a >> ad >> b >> bd;
    for (char c : a) {
        if (c == ad)
            ac = ac * 10 + ad - '0';
    }
    for (char c : b) {
        if (c == bd)
            bc = bc * 10 + bd - '0';
    }
    cout << ac + bc << endl;
    return 0;
}



Python解法


read = input().split(" ")
num1 = 0
num2 = 0
for i in read[0]:
    if i == read[1]:
        num1 = num1 * 10 + ord(read[1]) - ord('0')
for i in read[2]:
    if i == read[3]:
        num2 = num2 * 10 + ord(read[3]) - ord('0')
print(num1 + num2)





发布评论
  • 点击查看/关闭被识别为广告的评论