C++ high-precision algorithm (版本号)
发布时间
阅读量:
阅读量
文章结尾有惊喜
C++ 语言中,unsigned long long 类型所能表达的最大数值为 2^64-1,即 18446744073709551615。然而,在某些特定问题中,可能需要处理远超这一范围的数值,其位数甚至可达到数十万之多。在这种情况下,便需要借助我们今日将要介绍的高精度计算方法。
通过数组结构,我们可以对大数的运算过程进行模拟与实现。
1.1 读入大整数的方法
采用数组结构存储完整的高精度整数,并同时记录该整数的位数len。
由于本过程旨在模拟计算竖式的操作流程,因此需要从右向左进行读取,以应对进位所产生的影响。
string num;
cin >> num;
int a[105], len = num.size();
for (int i = 0; i < len; i++) {
a[i] = num[len - 1 - i] - '0';// 注意这里要减去'0',因为我们要把字符'0'变为整数"0"
}
1.2 输出大整数的方法
要得到一个精确度较高的数值序列,只需将数组中的各个元素按照相反的顺序进行排列输出即可。
for (int i = len - 1; i >= 0; i--
全部评论 (0)
还没有任何评论哟~
