题目描述:
正整数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 < 1010。
输出格式:
在一行中输出PA + PB的值。
输入样例1:3862767 6 13530293 3输出样例1:
399输入样例2:
3862767 1 13530293 8
输出样例2:
0
本题目较为简单。熟练使用头文件string.h即可(和头文件string是不同的两个头文件)以及数组即可。
#include<stdio.h>
#include<string.h>
int main ()
{
char stra[11],strb[11]; //使用两数组分别存储A和B
int da,db,alen=0,blen=0,adig=0,bdig=0,pa=0,pb=0; // alen blen分别是两数组的长度 ,adig.bdig分别是da db在了两数组中出现的次数
scanf("%s %d %s %d",stra,&da,strb,&db); // 将信息读入相应变量
alen=strlen(stra); //求得长度
blen=strlen(strb);
for(int i=0;i<alen;i++){
if(da==stra[i]-'0'){
adig++; //统计da出现的次数
}
}
for(int i=0;i<blen;i++){
if(db==strb[i]-'0'){
bdig++; //统计db出现的次数
}
}
for(int i=0;i<adig;i++){
pa=pa*10+da; //计算pa
}
for(int i=0;i<bdig;i++){
pb=pb*10+db; //计算pb
}
printf("%d",pa+pb); //输出结果。完美哈哈哈哈哈。
}