网站开发流程图 最,安康免费做网站,dedecms 如何关闭网站,海外服务器加速高精度是什么
计算数据过大超过long long的数据范围时#xff0c;需要引进高精度算法。将数一位一位的存在数组中输出。
高精度加法
#includeiostream
#includecstring
using namespace std;int main()
{char a1[10000], b1[10000];//字符存储数字int a[10…高精度是什么
计算数据过大超过long long的数据范围时需要引进高精度算法。将数一位一位的存在数组中输出。
高精度加法
#includeiostream
#includecstring
using namespace std;int main()
{char a1[10000], b1[10000];//字符存储数字int a[10000], b[10000], c[10000];//存储相加结果int len_a, len_b, len_c 1, x, i;memset(a, 0, sizeof(a));//清零memset(b, 0, sizeof(b));memset(c, 0, sizeof(c));cin a1 b1;//输入两个加数len_a strlen(a1);//计算字符串长度len_b strlen(b1);for (i 0; i len_a; i)a[len_a - i] a1[i] - 0;//将加数存在a数组for (i 0; i len_b; i)b[len_b - i] b1[i] - 0;//将另一个数存在b数组x 0;//x为进位while (len_c len_a || len_c len_b){c[len_c] a[len_c] b[len_c] x;//两数相加再加上前两个数进位的x c[len_c] / 10;c[len_c] % 10;len_c;//位数}c[len_c] x;if (c[len_c] 0)//判断首位是否为0{len_c--;//位数--}//输出每一位for (int i len_c; i 1; i--){cout c[i];}return 0;
}
高精度减法
#includeiostream
#includecstring
using namespace std;int main()
{char a1[10000], b1[10000];//字符存储数字int a[10000], b[10000], c[10000];//存储相减结果int len_a, len_b, len_c 1, x, i;memset(a, 0, sizeof(a));//清零memset(b, 0, sizeof(b));memset(c, 0, sizeof(c));cin a1 b1;//输入len_a strlen(a1);//计算字符串长度len_b strlen(b1);for (i 0; i len_a; i)a[len_a - i] a1[i] - 0;for (i 0; i len_b; i)b[len_b - i] b1[i] - 0;i 1;while (i len_a || i len_b){if (a[i] b[i]){c[i] a[i] 10 - b[i];a[i 1]--;//借位}else{c[i] a[i] - b[i];}i;}len_c i;while (c[len_c] 0 len_c 1){len_c--;}//输出每一位for (int i len_c; i 1; i--){cout c[i];}return 0;
}
高精度乘法
#includeiostream
#includecstring
using namespace std;int main()
{char a1[10000], b1[10000];//字符存储数字int a[10000], b[10000], c[10000];//存储相减结果int len_a, len_b, len_c 1, x, i, j;memset(a, 0, sizeof(a));//清零memset(b, 0, sizeof(b));memset(c, 0, sizeof(c));cin a1 b1;//输入len_a strlen(a1);//计算字符串长度len_b strlen(b1);for (i 0; i len_a; i)a[len_a - i] a1[i] - 0;for (i 0; i len_b; i)b[len_b - i] b1[i] - 0;for (i 1; i len_a; i){x 0;for (j 0; j len_b; j){c[i j - 1] x a[i] * b[i];x c[i j - 1] / 10;//进位c[i j - 1] % 10;}c[i len_b] x;//进位的数}len_c len_a len_b;while (c[len_c] 0 len_c 1){len_c--;}//输出每一位for (int i len_c; i 1; i--){cout c[i];}return 0;
}