PAT 乙级 1016 部分A+B
原创
©著作权归作者所有:来自51CTO博客作者漫浸天空的雨色的原创作品,请联系作者获取转载授权,否则将追究法律责任
1016 部分A+B (15 point(s))
正整数 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:
输出样例 1:
输入样例 2:
输出样例 2:
经验总结:
这一题也是基本题啦,读入可以使用字符数组,处理起来更方便一些,计算指定数字的个数,然后根据指定数字个数形成PA和PB,最后相加输出就行啦~~ヾ(*´▽‘*)ノ
AC代码
#include <cstdio>
int main()
{
char a[12],b[12],da,db;
while(~scanf("%s %c %s %c",a,&da,b,&db))
{
int acount=0,bcount=0;
for(int i=0;a[i]!='\0';++i)
{
if(a[i]==da)
++acount;
}
for(int i=0;b[i]!='\0';++i)
{
if(b[i]==db)
++bcount;
}
int sa=0,sb=0;
for(int i=0;i<acount;++i)
sa=10*sa+da-48;
for(int i=0;i<bcount;++i)
sb=10*sb+db-48;
printf("%d",sa+sb);
}
return 0;
}