大数乘法,大数×大数字符串版
发布时间:2020-12-14 02:58:01 所属栏目:大数据 来源:网络整理
导读:大数乘大数 #include iostream#include cstdio#include cstringusing namespace std;char * multiply(char *a,char *b,char *c){ int i,j; int righta,rightb,up,jj; int len1 = strlen(a); int len2 = strlen(b); for(i=0 ; i(len1+len2+1) ; i++) c[i] = '
大数乘大数 #include <iostream> #include <cstdio> #include <cstring> using namespace std; char * multiply(char *a,char *b,char *c) { int i,j; int righta,rightb,up,jj; int len1 = strlen(a); int len2 = strlen(b); for(i=0 ; i<(len1+len2+1) ; i++) c[i] = '0'; jj = up = 0; int x,y,z; for(righta = len1-1 ; righta>=0 ; righta--) { j = jj; for(rightb = len2-1 ; rightb>=0 ; rightb--,j++) { x = a[righta]-'0'; y = b[rightb]-'0'; z = (c[j]-'0')+x * y + up; if(z >= 10) { up = z/10; z = z%10; c[j] = z + '0'; } else { up = 0; c[j] = z + '0'; } } if(up) { c[j] = up + '0'; up = 0; j++; } jj++; } j--; while(c[j] == '0' && j>0) j--; c[++j] = 0; char ch; for(i=0,j--; i<j ; i++,j--) ch = c[i],c[i]=c[j],c[j]=ch; return c; } int main() { char a[110],b[110],c[110]; FILE *pInput,*pOutput; pInput = fopen("in.txt","r"); pOutput = fopen("out.txt","w"); while(fscanf(pInput,"%s%s",a,b) == 2) { fprintf(pOutput,"%sn",multiply(a,b,c)); } fclose(pInput); fclose(pOutput); return 0; }输入文件in.txt,每行两个数字,空格隔开 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |