UVA - 10106 Product
来源:互联网 发布:金融数据建模招聘 编辑:程序博客网 时间:2024/05/16 01:46
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"); }}
0 0
- UVa 10106 Product
- UVa OJ 10106-Product
- Uva 10106 Product
- uva 10106 Product
- UVa 10106 - Product
- uva-10106 - Product
- UVA 10106 Product
- UVA 10106 - Product
- UVa 10106 - Product
- UVa 10106 - Product
- Uva 10106 - Product
- UVa 10106 - Product
- UVa - 10106 - Product
- UVA 10106 Product
- UVa 10106 - Product
- uva 10106 Product
- UVa 10106 Product (高精度)
- UVa 10106 - Product
- Android 自定义View-怎么绘制居中文本?
- AsyncTask-异步任务
- Android权限之sharedUserId和签名 .
- 1104. Sum of Number Segments (20)-PAT甲级真题
- UVA - 10494 If We Were a Child Again
- UVA - 10106 Product
- 1101. Quick Sort (25)-PAT甲级真题
- UVA - 101 The Blocks Problem
- RISC诞生与发展的缩影
- 获取缓存大小和清除缓存功能
- AndroidStudio设置三步走
- Android--多媒体
- UVA - 133 The Dole Queue
- Java链栈