两非负整数的高精度加减乘除模C++模板

本文介绍了一个C++类模板,用于实现非负整数的高精度加减乘除模运算。加减法实现相对简单,乘法基于算法竞赛入门中的方法,除法模拟人工算法。该模板还可扩展到负数和小数运算。
摘要由CSDN通过智能技术生成

两非负整数的高精度加减乘除模C++


直接打包成一个类模板了,加减法相对来说要简单一点,乘法的实现参考的算法竞赛入门里的bign类,比我之前写的简洁多了–。除法我是直接在有加减乘法的基础上模拟人的算法实现的,有了除法后,模就更简单了= =
其实在这些的基础上,是可以扩展成负数之间的运算的,还可以小数 = =

#include <iostream>
#include <iomanip>
#include <fstream>
#include <sstream>
#include <vector>

#include <cstdio>
#include <cmath>
#include <cstring>
#include <cassert>

using namespace std;
//#define LOCAL

const int MAX = 3000 + 10;

class Number{
friend ostream& operator<<(ostream &, const Number &);
friend istream& operator>>(istream &, Number&);

friend Number operator+(const Number&, const Number&);
friend Number operator-(const Number&, const Number&);
friend Number operator*(const Number&, const Number&);
friend Number operator/(const Number&, const Number&);
friend Number operator%(const Number&, const Number&);
friend Number operator>>(const Number&, int);

friend bool operator<(const Number&, const Number&);
friend bool operator>(const Number &, const Number &);
friend bool operator<=(const Number&, const Number&);
friend bool operator>=(const Number &, const Number &);
friend bool operator==(const Number &, const Number &);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值