/*这里专门就算法中的大数问题进行一个统一归纳
*/#include<iostream>#include<string>#include<
using namespace std;
//结果支持的最大位数
//这个可以依据具体需求调整
const static int M = 2000;
int numA[M];
int numB[M];
//使用string重置numA
void resetNumA(string numAStr)
{
memset(numA,0,M*sizeof(int));
//将字符串的每一位都转换成数字传入数组
for (int i = 0; i < numAStr.length(); i++)
{
numA[i] = numAStr[numAStr.length()-i-1] - '0';
}
}
//使用string重置numB
void resetNumB(string numBStr)
{
memset(numB,0,M*sizeof(int));
//将字符串的每一位都转换成数字传入数组
for (int i = 0; i < numBStr.length(); i++)
{
numB[i] = numBStr[numBStr.length()-i-1] - '0';
}
}
//将数组转换为字符串,用于输出
string getNumString(int* num)
{
string numString;
bool isBegin = false;
for (int i = M-1; i >= 0 ; i--)
{
if(num[i] != 0)
{
isBegin = true;
}
if (isBegin)
{
numString += num[i] +'0';
}
}
return numString;
}
//判断两个数字哪个大
int compare(string numAStr,string numBStr)
{
if (numAStr.length() > numBStr.length())
{
return 1;
}
else if (numAStr.length() < numBStr.l
模板--大位数加减乘除
最新推荐文章于 2022-01-03 11:19:55 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)