问题 H: 部分A+B (15)

Posted csuzhhj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问题 H: 部分A+B (15)相关的知识,希望对你有一定的参考价值。

问题 H: 部分A+B (15)

时间限制: 1 Sec  内存限制: 32 MB
献花: 86  解决: 81
[献花][花圈][TK题库]

题目描述

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

现给定A、DA、B、DB,请编写程序计算PA + PB。

输入

输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 10^10。

输出

在一行中输出PA + PB的值。

样例输入

3862767 6 13530293 3
3862767 1 13530293 8

样例输出

399
0
参考代码:

#include<stdio.h>


#include<cmath>


int main(){


    int a,c,b,d;


    int ret1=0,ret2=0;


    int cnt=0,n=0;


    scanf("%d %d %d %d",&a,&c,&b,&d);


    while(a!=0){


        if(a%10==c){


            cnt++;


            ret1+=pow(10,cnt-1)*c;


        }


        a=a/10;


    }


    while(b!=0){


        if(b%10==d){


            n++;


            ret2+=pow(10,n-1)*d;


        }


        b=b/10;


    }


    printf("%d\n",ret1+ret2);


    return 0;


}

取出每一位数后直接处理,不要保存到数组再遍历,这样会超时因为最大值为10^10

 

以上是关于问题 H: 部分A+B (15)的主要内容,如果未能解决你的问题,请参考以下文章

[linux][c/c++]代码片段01

上下文菜单不适用于两个片段

PAT乙级 1016. 部分A+B (15)

引用向量的部分片段?

1016. 部分A+B (15)

Android Navigation - 导航时弹出当前片段