C++中大数的四则运算以及求模,包含自定义小数位数的高精度除法

起因

在做算法题时经常会处理一些较大的超过c++long long类型的数据,而在网上寻找到的大数运算代码良莠不齐。遂自己敲了一份,代码目前有许多没有优化的地方,希望大家可以指出其中的不足之处,一起进步。

代码实现及注释

#include <bits/stdc++.h>
using namespace std;

class Operation
{
public:
	Operation() {}									//默认构造函数
	bool cmp(string a, string b);					//比较两个“数字”的大小
	void Carry(string &c, int t);					//进位操作,当某一位超过十是使用此函数进位
	string Add(string a, string b);					//大数加法
	string Less(string a, string b);				//大数减法
	string Multiply(string a, string b);			//大数乘法
	string Except_Judge(string a, string b, int n); //大数除法模式选择(大数小或小除大)
	string Except_A(string a, string b, int n);		//大除小
	string Except_B(string a, string b, int n);		//小除大高精度除法,其中n为自定义的小数位数
	string Module(string a, string b);				//大数求模
};

/*比较大小*/
bool Operation::cmp(string a, string b)
{
	if (a.size() < b.size()) //首先比较长度
		return true;		 //长度大的肯定大
	if (a.size() > b.size())
		return false;
	return a < b; //若长度相等可直接比较
}

/*进位操作*/
void Operation::C
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值