大數乘法運算
利用乘法法則,相乘,然後進位,取餘
詳細過程-如圖
源代碼
#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;
}