#include<stdio.h> #include<string.h> int main(){ char a[1001],b[1001],c[2002],d[2002]; int i,j,k,al,bl,jc,jj,m,ans=0; printf("输入两个非负数:\n"); scanf("%s%s",&a,&b); al=strlen(a); bl=strlen(b); for(i=0;i<al+bl;i++){ if(i<al) a[i]=a[i]-48; //转码 if(i<bl) b[i]=b[i]-48; c[i]=0; d[i]=0; } for(i=bl-1;i>=0;i--){ k=al; jc=0; for(j=al-1;j>=0;j--){ c[k]=(a[j]*b[i]+jc)%10; //求得余数 jc=(a[j]*b[i]+jc)/10; //进位 if(j==0) c[k-1]=jc; k--; } for(j=bl-1-i;j<bl-1;j++) printf(" "); // for(j=0;j<=al;j++) printf("%d ",c[j]); //过程,可删 printf("\n"); // for(j=al+i,m=al;j>=i;j--,m--){ if(d[j]+c[m]>=10) d[j-1]++; //进位 d[j]=(d[j]+c[m])%10; //累加 } } for(i=0;i<al+bl;i++) printf("%d ",d[i]); printf("\n"); }
C语言 大数相乘
猜你喜欢
转载自blog.csdn.net/littlewhitelv/article/details/79844756
今日推荐
周排行