正整数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
思路分析:c中用字符串存储超大的数,用模拟人手算的方式计算加减乘除
代码如下:
<pre name="code" class="cpp">#include<stdio.h>
#include<math.h>
main()
{
char numa[12],numb[12],da,db;
int i,a,b,counta=0,countb=0;
long int sa=0,sb=0,sc;
sc=scanf("%s %c %s %c",numa,&da,numb,&db);
a=da-'0';
b=db-'0';
for(i=0;numa[i]!='\0';i++)
{
if(numa[i]==da)
{
sa+=a*pow(10,counta);
counta++;
}
}
for(i=0;numb[i]!='\0';i++)
{
if(numb[i]==db)
{
sb+=b*pow(10,countb);
countb++;
}
}
printf("%ld",sa+sb);
/*
char c,d;
scanf("%c%c",&c,&d);
printf("%c %c",c,d);*/
}
本文介绍了一种算法,用于从两个大整数中提取指定数字的所有实例,并将这些实例组合成新的整数,最后计算这两个新整数的总和。
335

被折叠的 条评论
为什么被折叠?



