pat乙级 1016部分A+B
题目
正整数 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
代码如下
#include<stdio.h>
int main()
{
long long int A,B,Pa=0,Pb=0,m,n;
int Da,Db,i=0,j=0;
scanf("%lld %d %lld %d",&A,&Da,&B,&Db);
m=A,n=B;
while(m>=1)
{
if(m%10==Da) i++;
m=m/10;
}
while(n>=1)
{
if(n%10==Db) j++;
n=n/10;
}
for(i,j;i>0,j>0;i--,j--)
{
Pa=Pa*(10^(i-1))+Da;
Pb=Pb*(10^(i-1))+Db;
}
printf("%lld\n",Pa+Pb);
return 0;
}
系统回馈
感谢各位前辈的指点,谢谢!