问题 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)的主要内容,如果未能解决你的问题,请参考以下文章