用C++写算法时,遇到高精度运算的问题,需要自己实现一个大整数类。苦于网上的大整数类参差不齐,我在参考的基础上写了一个大整数类,供参考理清思路。
参考:
- 《算法竞赛入门经典》第五章大整数类
- 网上一些博客
思路:
- 加法:逐位相加,处理进位
- 减法:逐位相减,处理借位
- 乘法:模拟手工乘法
- 乘方:快速幂算法
- 除法:模拟手工除法
注:这个大整数类在下面四题均测试通过。

例:以最后一题大整数除法为例,它用到了大整数的加,减,乘,乘方运算。

main函数
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s[2];
cin >> s[0] >> s[1];
BigInteger a[2];
for (int i = 0; i < 2; i++) {
a[i] = s[i];
}
BigInteger c = a[0] / a[1];
for (int i = c.length - 1; i &

本文介绍如何在C++中实现一个大整数类,用于处理高精度计算。内容涵盖大整数的加法、减法、乘法、乘方和除法操作,采用逐位运算处理进位和借位。文中还提供了快速幂算法进行乘方运算,并通过实例展示大整数除法的实现。代码已通过相关测试,可供学习和交流。
最低0.47元/天 解锁文章
394

被折叠的 条评论
为什么被折叠?



