首页 > 其他 > 详细

分治法——大整数相乘

时间:2018-01-01 14:26:04      阅读:353      评论:0      收藏:0      [点我收藏+]

#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <math.h>

void compute(char d1[],char d2[],char sum[])
{
int result[100]={0},i,j,inx=0,income=0,len=strlen(d1)+strlen(d2)-1;
char temp;
for(i=0;i<strlen(d2);i++)
for(j=0;j<strlen(d1);j++)
{
result[j+i]+=(d1[j]-‘0‘)*(d2[i]-‘0‘);
}
for(j=len-1;j>=0;j--)
{
sum[inx++]=(result[j]+income)%10+‘0‘;
income=(result[j]+income)/10;
}
if(income>0)
{
while(income>0)
{
sum[inx++]=income%10+‘0‘;
income=income/10;
}
}

sum[inx]=‘\0‘;
for(i=0,j=strlen(sum)-1;i<j;i++,j--)
{
temp=sum[i];
sum[i]=sum[j];
sum[j]=temp;
}
}
main()
{
char d1[10]="8216547",d2[10]="96785",sum[100];
compute(d1,d2,sum);
printf("sum:%s\n",sum);
getch();
}

分治法——大整数相乘

原文:https://www.cnblogs.com/MarsMercury/p/8167214.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!