大数乘法运算(C语言)

大数乘法运算

<mark>利用乘法法则,相乘,然后进位,取余</mark>
详细过程-如图

源代码

#include<stdio.h>
#include<string.h>
#define N 100
int main()
{
	int i,j,L[N];
	char m[N],n[N];
	scanf("%s %s",m,n);
	int len1=strlen(m);
	int len2=strlen(n);
	memset(L,0,sizeof(L));//初始化为0
	//第一步
	for(i=0;i<len1;i++)
		for(j=0;j<len2;j++)
			L[i+j]+=(m[len1-i-1]-'0')*(n[len2-j-1]-'0');//乘运算
	//第二步
	for(i=0;i<len1+len2;i++)
		if(L[i]>=10)
		{
			L[i+1]+=L[i]/10;//进位
			L[i]%=10;//取余
		}
	//第三步
	while(L[i]==0)//去零
		i--;
	//输出答案
	while(i>=0)
		printf("%d",L[i--]);
	return 0;
}
全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务