70,020
社区成员




#include "stdio.h"
#include "math.h"
#define MULTIPLIER_LENGTH 100 //乘数的最大位数
#define MULTIPLICAND_LENGTH 100 //被乘数的最大位数
void main()
{
int multiplier[MULTIPLIER_LENGTH]={0};//乘数
int multiplicand[MULTIPLICAND_LENGTH]={0};//被乘数
int product[MULTIPLIER_LENGTH+MULTIPLICAND_LENGTH]={0};//积
int i,j;
int me;//乘数的位数,从0算起
int mc;//被乘数的位数,从0算起
char ch;
ch=getchar();
i=0;
while('0'<=ch&&ch<='9')
{
multiplicand[i]=ch-'0';
ch=getchar();
i++;
}
mc=i-1;
ch=getchar();
i=0;
while('0'<=ch&&ch<='9')
{
multiplier[i]=ch-'0';
ch=getchar();
i++;
}
me=i-1;
int c=0;//进位值carry
for(i=0;i<=me;i++)//乘数
{
for(j=0;j<=mc;j++)//乘以每个被乘数
{
product[i+j]+=c+multiplicand[mc-j]*multiplier[me-i];
c=product[i+j]/10;
product[i+j]=product[i+j]%10;
}
if(c!=0){
product[i+mc+1]=c;
c=0;
}
}
i=MULTIPLIER_LENGTH+MULTIPLICAND_LENGTH-1;
while(!product[i]) i--;//找到第一个不为0的数
for(i;i>=0;i--)
printf("%d",product[i]);
printf("\n");
fflush(stdin);
getchar();
}