uva 10106 Product(大数乘法)
发布时间:2020-12-14 04:05:24 所属栏目:大数据 来源:网络整理
导读:/*大数乘法*/ #includecstdio#includecstringusing namespace std;int sum[62550];int main(){ char str[3][255]; int num[3][255]; int len[3],maxlen,i; memset(str,sizeof(str)); while(scanf("%s",str[0]) != EOF) { scanf("%s",str[1]); memset(sum,siz
/*大数乘法*/ #include<cstdio> #include<cstring> using namespace std; int sum[62550]; int main() { char str[3][255]; int num[3][255]; int len[3],maxlen,i; memset(str,sizeof(str)); while(scanf("%s",str[0]) != EOF) { scanf("%s",str[1]); memset(sum,sizeof(sum)); memset(num,sizeof(num)); len[0] = strlen(str[0]); len[1] = strlen(str[1]); for( i = 0 ; i < 2; i++) { int k = 0; for(int j = len[i]-1 ; j >= 0 ; j--) { num[i][k++] = str[i][j] - '0'; } } maxlen = len[2]; if(len[0] > len[2]) { maxlen = len[0]; } for( i = 0 ; i < len[0] ; i++) { for(int j = 0 ; j < len[1]+i ; j++) { sum[j+i] += num[0][i] * num[1][j]; } } maxlen = len[0] + len[1]; for( i = 0 ; i < maxlen ; i++) { if(sum[i] > 9) { sum[i+1] += sum[i]/10; sum[i] = sum[i]%10; if(i == maxlen - 1) { maxlen++; } } } for( i = maxlen - 1; i >= 0 ; i--) { if(sum[i]) break; } if( i == -1) { printf("0n"); } else { for(int j = i ;j >=0 ; j--) { printf("%d",sum[j]); } putchar(10); } memset(str,sizeof(str)); memset(num,sizeof(num)); } return 0; } //大数乘法。注意数据的范围。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |