用C++写算法时,遇到高精度运算的问题,需要自己实现一个大整数类。苦于网上的大整数类参差不齐,我在参考的基础上写了一个大整数类,供参考理清思路。
参考:
- 《算法竞赛入门经典》第五章大整数类
- 网上一些博客
思路:
- 加法:逐位相加,处理进位
- 减法:逐位相减,处理借位
- 乘法:模拟手工乘法
- 乘方:快速幂算法
- 除法:模拟手工除法
注:这个大整数类在下面四题均测试通过。
例:以最后一题大整数除法为例,它用到了大整数的加,减,乘,乘方运算。
main函数
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s[2];
cin >> s[0] >> s[1];