UVA - 10106 Product
2016-07-21 19:14
330 查看
UVA - 10106 Product
题目大意:高精乘法解题思路:用两个数组存 其中一个数组每个元素乘以另一个 数组的每个元素 然后就行了
/************************************************************************* > File Name: UVA-10106.cpp > Author: Robin > Mail: 499549060@qq.com > Created Time: 2016年07月19日 星期二 14时46分37秒 ************************************************************************/ #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> using namespace std; int main() { char x1[100000],x2[100000]; int a1[100000]; int a2[100000]; int a3[100000]; while (scanf("%s%s", x1, x2) != EOF) { memset(a1, 0, sizeof(a1)); memset(a2, 0, sizeof(a2)); memset(a3, 0, sizeof(a3)); int len1 = strlen(x1); int len2 = strlen(x2); int jj = 0; for (int i = len1 - 1; i >= 0; i--, jj++) a1[jj] = x1[i] - '0'; jj = 0; for (int i = len2 - 1; i >= 0; i--, jj++) a2[jj] = x2[i] - '0'; for (int i = 0; i < len1; i++) { int s = 0; for (int j = 0; j < len2; j++) { s = a3[i+j]+a1[i]*a2[j]; a3[j+i] = s%10; a3[i+j+1] += s/10; } } int f; if (a3[len1 + len2 - 1] > 0) { f = len1 + len2 - 1; } else f = len1 + len2 - 2; for (int i = f; i >= 0; i--) { printf("%d", a3[i]); if (a3[i] == 0 && i == f) break; } printf("\n"); } }
相关文章推荐
- 1101. Quick Sort (25)-PAT甲级真题
- UVA - 10494 If We Were a Child Again
- Android权限之sharedUserId和签名 .
- 30分钟学会EventBus3.0详解(一)(引入和初始化EventBus3.0)(by星空武哥)
- DDL DML
- UVA - 748 Exponentiation
- Android 自定义View-怎么绘制居中文本?
- 【java类与对象】Java中创建对象的5种方式
- restore archivelog 的用法
- UVA - 202 Repeating Decimals
- UVA - 10014 Simple calculations
- 1108. Finding Average (20)-PAT甲级真题
- 1104. Sum of Number Segments (20)-PAT甲级真题
- hdu 5735 Born Slippy 暴力
- 关于C变量作用域和生存期的常见问题
- UVA - 10970 Big Chocolate
- UVA - 10916 Factstone Benchmark
- Android更新UI的方式
- UVA - 10177 (2/3/4)-D Sqr/Rects/Cubes/Boxes?
- 2016.07.07【初中部 NOIP提高组 】模拟赛C