大數乘法運算(C語言)

大數乘法運算

利用乘法法則,相乘,然後進位,取餘
詳細過程-如圖
在這裏插入圖片描述

源代碼

#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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章