大数相乘
发布时间:2020-12-14 03:06:52 所属栏目:大数据 来源:网络整理
导读:求解两个大数相乘的结果,字符串解决。代码如下: #includestdio.h#includestring.h#define LEN 300void Mul(char a[],char b[],char c[]){int i,j;for(i=0; iLEN*2; i++)c[i]=0;for(i=0; iLEN; i++) {for(j=0; jLEN; j++) {c[i+j]+=a[j]*b[i];if(c[i+j]=10)
求解两个大数相乘的结果,字符串解决。代码如下:
#include<stdio.h> #include<string.h> #define LEN 300 void 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); } }。。。。。。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |