公牛数学-大数乘法

公牛在数学上比母牛好得多。他们可以将巨大的整数相乘,并获得完全精确的答案……或者他们这样说。农夫约翰想知道他们的答案是否正确。帮助他检查公牛队的答案。读两个正整数(每个不超过40位)并计算其乘积。将其输出为正常数字(没有多余的前导零)。

FJ要求您自己执行此操作;不要对乘法使用特殊的库函数。
输入值
*第1…2行:每行包含一个十进制数字。
输出量
*第1行:两个输入行的确切乘积
样本输入
11111111111111
1111111111
样本输出
12345679011110987654321

#include<stdio.h>
#include<string.h>
int main()
{
    
    
	char aa[50],bb[50];
	int s[100]={
    
    0},i,j,f=0,k,l1,l2,x,y,z,a[50],b[50];
	scanf("%s%s",aa,bb);
	l1=strlen(aa),l2=strlen(bb);
	for(i=l1-1,j=0;i>=0;i--)
	a[j++]=aa[i]-'0';
	for(i=l2-1,j=0;i>=0;i--)
	b[j++]=bb[i]-'0';
	for(i=0;i<l2;i++)
	{
    
    
		f=0;
		k=i;x=0,y=0;
		for(j=0;j<l1;j++)
	   {
    
    
		x=y+a[j]*b[i]+s[k];
		y=x/10;
		s[k]=x%10;
		k++;
	   }
	   if(y!=0)
	   f=1,s[k]=y;
	   /*for(int ii=k+f-1;ii>=0;ii--)
	  printf("%d",s[ii]);
	  printf("\n%d\n",k);*/
   }
	for(i=k+f-1;i>=0;i--)
	printf("%d",s[i]);
	printf("\n");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_46381590/article/details/112095283
今日推荐