您的位置:首页 > 编程语言 > C语言/C++

大整数乘法(C语言)

2013-11-13 13:07 197 查看
大整数乘法
一、C程序源码

#include<stdio.h>
#include<stdlib.h>
#include"string.h"

#define len 20

int main()
{
int i,j,t,n,temp;
char mult1[len];
char mult2[len];
printf("Input two big numbers:\n");
scanf("%s %s",mult1,mult2);
int len1 = strlen(mult1);
int len2 = strlen(mult2);
int *c1 = (int *)malloc(sizeof(int)*len1);
int *c2 = (int *)malloc(sizeof(int)*len2);

for(i=0; i<len1; i++)
c1[i]=(int)mult1[i]-48;
for(i=0; i<len2; i++)
c2[i]=(int)mult2[i]-48;

int *result = (int *)malloc(sizeof(int)*(len1+len2));

n=len1+len2-1;
for(i=0; i<=n; i++)
result[i]=0;
temp=0;
for(i=len2-1; i>-1; i--)
{
t=c2[i];
for(j=len1-1; j>-1 ;j--)
{
if((temp=result
+t*c1[j])>=10)
{
result
=(temp);
result[n-1]+=temp/10;
}
else
result
=temp;
n--;
}
n=n+len1-1;
}

printf("Result: ");
if(result[0]!=0)
printf("%d",result[0]);
for(i=1;i<=len1+len2-1;i++)
printf("%d",result[i]);
printf("\n");
return 0;
}

二、运行结果截图


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: