美文网首页
PAT Basic 1016. 部分A+B (15)(C语言实现

PAT Basic 1016. 部分A+B (15)(C语言实现

作者: OliverLew | 来源:发表于2017-04-14 22:56 被阅读223次

我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容。此处文章目前已更新至与Github Pages同步。欢迎star我的repo

题目

正整数 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^{10}

输出格式:

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

输入样例 1:

3862767 6 13530293 3

输出样例 1:

399

输入样例 2:

3862767 1 13530293 8

输出样例 2:

0

思路

2^{31} \lt 2\times 10^{10},因此要用long int

代码

最新代码@github,欢迎交流

#include <stdio.h>

long Dpart(long A, int D_A)
{
    long P_A;
    for(P_A = 0; A; A /= 10)
        if(A % 10 == D_A)
            P_A = P_A * 10 + D_A;
    return P_A;
}

int main()
{
    long A, B;
    int D_A, D_B;
    scanf("%ld %d %ld %d", &A, &D_A, &B, &D_B);
    printf("%ld", Dpart(A, D_A) + Dpart(B, D_B));

    return 0;
}

相关文章

网友评论

      本文标题:PAT Basic 1016. 部分A+B (15)(C语言实现

      本文链接:https://www.haomeiwen.com/subject/dsbgattx.html