短短的高精度加法乘法
2017-06-18 20:35
239 查看
#include <cstring> #include <cstdio> using namespace std; char a[3005], b[3005]; int c[3005], d[3085], z[6085], x, y; void f(char h[], int *t, int len){int i;for(i=1;i<=len;i++) t[i]=h[len-i]-48;} int main(){ int i, j; scanf("%s%s", a, b); x = strlen(a); y = strlen(b); f(a,c,x); f(b,d,y); for(i = 1; i <= x; i++) for(j = 1; j <= y; j++) z[i+j-1] += c[i]*d[j]; for(i = 1; i <= x+y-1; i++) z[i+1] += z[i]/10, z[i]%=10; if(!z[i]) i--; for(j = z[i]?i:i-1; j >= 1; j--) printf("%d",z[j]); return 0; }
上面是乘法下面是加法
#include <cstring>
#include <cstdio>
using namespace std;
char a[385], b[385];
int c[385], d[385], x, y;
int main(){
int i, j, n, m;
scanf("%s%s", a, b);
n = (x = strlen(a))>(y = strlen(b))?x:y;
for(i = 0; i < n; i++){
c[i] += (a[x-i-1]-48)>0?a[x-i-1]-48:0; d[i] += (b[y-i-1]-48)>0?b[y-i-1]-48:0;
c[i] += d[i]; c[i+1] += c[i]/10; c[i] %= 10;
}
for(j = c
?n:n-1; j >= 0; j--) printf("%d", c[j]);
return 0;
}
相关文章推荐
- PKU1737 解题报告 Connected Graph __高精度加法,乘法,减法,组合数
- 高精度加法以及乘法运算
- 高精度乘法和加法
- 整数高精度运算的库(加法,减法,乘法,除法,取模)
- C++ 高精度加法 高精度减法 高精度乘法1
- 高精度 大数加法 乘法 除法 模板
- 高精度计算——乘法与加法
- 大数的加法和乘法,高精度
- 高精度加法和乘法的c++实现
- uva 424 Integer Inquiry(高精度加法模板) uva 10106 Product(高精度乘法模板)
- 高精度入门(减法、加法、乘法)之 CODE[VS] 3115、3116、3117
- pku1737(求连通图个数,运用高精度加法,减法,乘法,组合数)
- 高精度加法,乘法,阶乘
- 高精度加法与乘法
- C语言(7)--高精度加法、减法、乘法、今天是星期几、四位平方数、候选人选票问题
- 高精度 大数加法 乘法 除法 幂 模板
- 高精度(加法,乘法),字符串<->数值
- 华为机试:无线OSS-高精度整数加法、矩阵乘法计算量估算
- 大数加法 减法 乘法 除法 高精度四则运算
- 链表的高精度*+法;高精度 加法 乘法