大数相乘

来源:互联网 发布:神泣单机数据库 编辑:程序博客网 时间:2024/05/21 00:48

求解两个大数相乘的结果,字符串解决。代码如下:

#include<stdio.h>#include<string.h>#define LEN 300void Mul(char a[], char b[], char c[]){int i, j;for(i=0; i<LEN*2; i++)c[i]=0;for(i=0; i<LEN; i++) {for(j=0; j<LEN; j++) {c[i+j]+=a[j]*b[i];if(c[i+j]>=10) {c[i+j+1]+=c[i+j]/10;c[i+j]=c[i+j]%10;}}}}int Input(char n[]){char s[LEN];int i, l;for(i=0; i<LEN; i++)n[i]=0;if(scanf("%s", s)<1) return -1;l=strlen(s);for(i=0; i<l; i++)n[i]=s[l-i-1]-'0';return 0;}void Print(char n[]){int i;for(i=LEN*2-1; i>0; i--)if(n[i]!=0) break;for(; i>=0; i--)printf("%d", n[i]);printf("\n");}void main(){char a[LEN], b[LEN], c[LEN*2];while(1) {if(Input(a)) return;Input(b);Mul(a, b, c);Print(c);}}
。。。。。。

0 0
原创粉丝点击