加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

C语言大数相乘

发布时间:2020-12-14 02:56:18 所属栏目:大数据 来源:网络整理
导读:#include #define len 20 void display(int *result,int length); void displayAll(int *result,163)"> int * init(int *r,163)"> int * add(int *r1,int *r2,163)"> int * moveLeft(int *result,163)"> int main() { int i,j,t,n,temp; char mult1[len]; ch
#include

#define len 20
void display(int *result,int length);
void displayAll(int *result,163)"> int * init(int *r,163)"> int * add(int *r1,int *r2,163)"> int * moveLeft(int *result,163)"> 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);
int *result = (int *)malloc(sizeof(int)*(len1+len2));
int *tempResult = (int *)malloc(sizeof(int)*(len1+len2));
for(i=0; i
c1[i]=(int)mult1[i]-48;
c2[i]=(int)mult2[i]-48;
n=len1+len2;
int resultLength=n;
init(result,n);
init(tempResult,163)"> n--;
temp=0;
for(i=len2-1; i>-1;i--){
t=c2[i];
printf("%d*",t);
int flag=0;//进位
n=resultLength-1;
for(j=len1-1; j>-1 ;j--)
printf("%d=",c1[j]);
temp=t*c1[j]+flag;
flag=temp/10;
tempResult[n]=temp;
printf("%d,进位:%dn",tempResult[n],flag);
n--; ?
}
if(n>-1)
tempResult[n]+=flag;
//循环左移
for(int p=len2-1-i;p>0;p--){
tempResult=moveLeft(tempResult,163)"> result=add(result,tempResult,163)"> displayAll(tempResult,163)"> ?
display(result,163)"> return 1;
for(int i=0;i
printf("%d",result[i]);
printf("n");
printf("Result:");
if(result[0]!=0)
for(int i=1;i
for(int k=0;k
? if(k!=length-1)
? ?result[k]=result[k+1];
? else
? ?result[k]=0;
return result;
int flag=0;
for(int i=length-1;i>=0;i--){
int temp=r1[i]+r2[i]+flag;
r1[i]=temp;
return r1;
for(int i=0; i<length;i++)
r[i]=0;?
return r;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读