51Nod 大数乘法
2015-12-19 13:46
267 查看
题目链接
#include<stdio.h> //大数乘法#include<string.h>
void Calc(char *s1, char *s2){ int a[2001], i, j, len1, len2; for (i = 0; i < 2001; i++) a[i] = 0; len1 = strlen(s1); len2 = strlen(s2); for (i = len1 - 1; i >= 0; i--) { for (j = len2 - 1; j >= 0; j--) { a[2000 - (len1 + len2 - 2 - i - j)] += (s1[i] - '0')*(s2[j] - '0'); } } for (i = 2000; i >= 0; i--) { if (a[i]>9) { a[i - 1] += a[i] / 10; a[i] = a[i] % 10; } } i = 0; while (a[i] == 0) i++; if (i > 2000) printf("0"); else { for (; i <= 2000; i++) printf("%d", a[i]); } printf("\n");}
int main(){ char s1[1001], s2[1001]; scanf("%s%s", s1, s2); Calc(s1, s2); return 0;}
a162
#include<stdio.h> //大数乘法#include<string.h>
void Calc(char *s1, char *s2){ int a[2001], i, j, len1, len2; for (i = 0; i < 2001; i++) a[i] = 0; len1 = strlen(s1); len2 = strlen(s2); for (i = len1 - 1; i >= 0; i--) { for (j = len2 - 1; j >= 0; j--) { a[2000 - (len1 + len2 - 2 - i - j)] += (s1[i] - '0')*(s2[j] - '0'); } } for (i = 2000; i >= 0; i--) { if (a[i]>9) { a[i - 1] += a[i] / 10; a[i] = a[i] % 10; } } i = 0; while (a[i] == 0) i++; if (i > 2000) printf("0"); else { for (; i <= 2000; i++) printf("%d", a[i]); } printf("\n");}
int main(){ char s1[1001], s2[1001]; scanf("%s%s", s1, s2); Calc(s1, s2); return 0;}
a162
相关文章推荐
- 【排序】51NOD 1001-数组中和等于K的数对
- 51Nod 1212 无向图最小生成树
- 51Nod 1085 背包问题
- 51 Nod 完美字符串
- [51nod1227]平均最小公倍数(莫比乌斯反演+杜教筛)
- 51nod - 1672 线段树(插队问题变形)
- 51Nod - 1821 思维题 + 并查集 + 二分
- 51Nod - 1478 单调栈 + 二分
- 51Nod - 1376 dp
- 51Nod - 1407 容斥原理 + dp
- 51Nod - 1406 dp
- 51Nod - 1682 哈希 + 乱搞
- 51Nod - 1781 dp + 线段树 + 离散化
- 51Nod - 1503 多线程dp + 背包思想优化
- 51Nod - 1655 找规律 + 构造
- 51Nod - 1523 构造
- 51Nod - 1416 搜索环
- 51Nod - 1352 拓展gcd
- 51Nod - 1099 贪心
- 51Nod - 1674 分治