1016

2018-09-06  本文已影响0人  笔墨流年乱浮生

//1016 部分A+B(15 分)
//正整数 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

//思路:P_A是A中有几个D_A,组成一个数 B同理,最后相加
//其中D_A在0-9之间,A和B在0-10^10之间
//注意int的范围在-231到231-1间,而1010>231-1,因此会超出int的最大值,要用double

C:

#include <stdio.h>
  long  Dpart(long A,int DA)
{
    long PA;
    for (PA = 0; A; A /= 10) {
        if (A % 10 == DA) {
            PA = PA * 10 + DA;
        }
    }
    return PA;
}

int main(int argc, const char * argv[]) {
    long A,B;
    int DA,DB;
    scanf("%ld %d %ld %d",&A,&DA,&B,&DB);
    printf("%ld",Dpart(A, DA) + Dpart(B, DB));
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读