⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arithmetic.h

📁 可进行大数的加减乘除、阶乘、三角函数、幂指数(指数只支持整数)的运算
💻 H
字号:
#include <string>
#include <iostream>
#include <stack>
#include <iomanip>
#include <algorithm>
#include <cmath>

//using namespace std;

class Arithmetic
{
public:
	Arithmetic();
	Arithmetic(char c);
	Arithmetic(const Arithmetic& data); 
	Arithmetic(std::string num);
	~Arithmetic();

	//绝对值
    Arithmetic Abs();

	//sin
	std::string Sin();

	//cos
	std::string Cos();

	//tan
	std::string Tan();

	//取模运算
	friend Arithmetic operator % (Arithmetic& numa, Arithmetic& numb);

	//加法运算符
	friend Arithmetic operator + (Arithmetic& numa, Arithmetic& numb);
	
	//减法运算符
	friend Arithmetic operator - (Arithmetic& numa, Arithmetic& numb);

	//乘法运算符
	friend Arithmetic operator * (Arithmetic& numa, Arithmetic& numb);

	//除法运算符
	friend Arithmetic operator / (Arithmetic& numa, Arithmetic& numb);

	//幂指数运算符(指数是整数)
	Arithmetic RootInteger(std::string strNumber, std::string strRootInt);

	//比较大小
	friend bool operator < (Arithmetic& numa, Arithmetic& numb);
	friend bool operator > (Arithmetic& numa, Arithmetic& numb);
	friend bool operator <= (Arithmetic& numa, Arithmetic& numb);
	friend bool operator >= (Arithmetic& numa, Arithmetic& numb);

	//阶乘
	std::string Factorial();

	//获得私有成员
	std::string GetData() const;
public:
	//精确度
	static long m_precision;

	//三角函数计算数值状态 1表示用弧度计算 0表示用角度计算
	static int m_Tstate;

	//π
	static std::string pai;

private: 
	//乘法运算
	std::string Multiply(std::string left, std::string right, int digCount);
	std::string MulChar(char *a, char *b, int& carry);

	//除法运算
	std::string Dividle(std::string numa, std::string numb, long m_precision);

	//填充0,使a, b字符串长度相等(加减法用)
	void StringInsert(std::string& left, std::string& right, int ntype);

	//加减法运算
	std::string PlusMinus(std::string &left, std::string &right);

	//字符转数字
	int Atol(char c);

	//数字转字符
	char Itoa(int n);

	//比较2数大小(加减用)
	int Compare(std::string& left, std::string& right);

	//进位退位(加减用)
	void SumCarry(int& sum, int& carry);

	//加减运算
	void Operation(const std::string& left, const std::string& right, std::string& outcome, int& carry, int greater, int state, int plus);

private:
	std::string m_num;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -