c语言的大数相乘
其他
2018-09-11 00:14:17
阅读次数: 0
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# include<stdio.h> # include<string.h> # include<malloc.h> void multiply( char * a, char * b, char * c) { int i,j,ca,cb,* s; ca= strlen (a); cb= strlen (b); s=( int *) malloc ( sizeof ( int )*(ca+cb)); for (i=0;i<ca+cb;i++) s[i]=0; for (i=0;i<ca;i++) for (j=0;j<cb;j++) s[i+j+1]+=(a[i]- '0' )*(b[j]- '0' ); for (i=ca+cb-1;i>=0;i--) if (s[i]>=10) { s[i-1]+=s[i]/10; s[i]%=10; } i=0; while (s[i]==0) i++; for (j=0;i<ca+cb;i++,j++) c[j]=s[i]+ '0' ; c[j]= '\0' ; free (s); } |
转载自blog.csdn.net/qq_34886403/article/details/62236947