大数乘法
发布时间:2020-12-14 03:33:41 所属栏目:大数据 来源:网络整理
导读:大数乘法 #include iostream#include stdio.h#include string.h#include stdlib.husing namespace std;int main(){ char str1[300],str2[300]; int d[300],f[300],c[600]; int l1,l2,l,w,e; while(scanf("%s",str1)!=EOF) { memset(c,sizeof(c)); memset(d,s
大数乘法 #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> using namespace std; int main() { char str1[300],str2[300]; int d[300],f[300],c[600]; int l1,l2,l,w,e; while(scanf("%s",str1)!=EOF) { memset(c,sizeof(c)); memset(d,sizeof(d)); memset(f,sizeof(f)); scanf("%s",str2); l1=strlen(str1); l2=strlen(str2); if(l1<=l2) l=l2; else l=l1; w=l1; e=l2; for(int i=0;i<l;i++) { if(l1-1>=0) { d[i]=str1[l1-1]-'0'; l1--; } else d[i]=0; if(l2-1>=0) { f[i]=str2[l2-1]-'0'; l2--; } else f[i]=0; } for(int i=0;i<w;i++) { for(int j=0;j<e;j++) { c[i+j]=c[i+j]+d[i]*f[j]; } } for(int i=0;i<400;i++)//i=w+e; { if(c[i]>=10) { c[i+1]+=c[i]/10; c[i]=c[i]%10; } } int flag=0; for(int i=400;i>=0;i--)//i=w+e; { if(flag||c[i]) { flag=1; printf("%d",c[i]); } } if(flag==0) printf("0"); printf("n"); } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |