高效大数乘法 c语言,C语言实现大数乘法教程
這個(gè)算法有個(gè)技巧:將字符串先轉(zhuǎn)化為數(shù)組,乘法公式為c[i+j] += b[i]*a[j],最后在統(tǒng)一處理進(jìn)位,這一步很精髓
#include
#include
#define max 200
void muti(char str1[],char str2[])
{
int len1,len2,i,j;
int a[max+10],b[max+10],c[2*max+20];
memset(a,0,sizeof(a)); //數(shù)組初始化
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
len1 = strlen(str1);
for(j=0,i=len1-1;i>=0;i--)
{
a[j++] = str1[i] - '0' ;
}
len2 = strlen(str2);
for(j=0,i=len2-1;i>=0;i--)
{
b[j++] = str2[i] - '0';
}
for(i=0;i=10)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
for(i=2*max;(c[i]==0)&&(i>=0);i--);//跳過最高位的0
if(i>=0)
for(;i>=0;i--)
printf("%d",c[i]);
else
printf("0");
printf("\n");
}
int main()
{
char str1[max],str2[max];
gets(str1);
gets(str2);
muti(str1,str2);
}
總結(jié)
以上是生活随笔為你收集整理的高效大数乘法 c语言,C语言实现大数乘法教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机系统的层次结构(计算机组成原理5)
- 下一篇: C语言实现房贷计算器