美文网首页
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