/*大数乘法*/
#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("0\n"); } else { for(int j = i ;j >=0 ; j--) { printf("%d",sum[j]); } putchar(10); } memset(str,sizeof(str)); memset(num,sizeof(num)); } return 0; } //大数乘法。注意数据的范围。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。