UVaOJ 10106
地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1047
题意:大数乘法
代码:
#include <stdio.h> #include <string.h> #include <stdlib.h> char a[260],b[260]; int x[260], y[260], mut[610]; int main() { while(~scanf("%s%s", a, b)) { memset(mut, 0, sizeof(mut)); int i,j,k; int la,lb; la = strlen(a); lb = strlen(b); if(la == 1 && a[0] == \'0\' || lb == 1 && b[0] == \'0\') {printf("0\n"); continue;} for(i = la-1, j = 0; i >= 0; i--, j++) x[j] = a[i]-\'0\'; for(i = lb-1, j = 0; i >= 0; i--, j++) y[j] = b[i]-\'0\'; for(i = 0; i < la; i++) for(j = 0; j < lb; j++) { k = i+j; mut[k] += x[i]*y[j]; while(mut[k] > 9) { mut[k+1] += mut[k]/10; mut[k] %= 10; k++; } } k = 0; for(i = 600; i >= 0; i--) { if(!k && mut[i]) k = 1; if(k) printf("%d", mut[i]); } printf("\n"); } }
版权声明:本文为andre0506原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。