#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
const int MAXN = 410;
struct bign
{
int len, s[MAXN];
bign ()
{
memset(s, 0, sizeof(s));
len = 1;
}
bign (int num) { *this = num; }
bign (const char *num) { *this = num; }
bign operator = (const int num)
{
char s[MAXN];
sprintf(s, "%d", num);
*this = s;
return *this;
}
bign operator = (const char *num)
{
for(int i = 0; num[i] == '0'; num++) ; //去前导0
len = strlen(num);
for(int i = 0; i < len; i++) s[i] = num[len-i-1] - '0';
return *this;
}
bign operator + (const bign &b) const //+
{
bign c;
c.len = 0;
for(int i = 0, g = 0; g || i < max(len, b.len); i++)
{
int x = g;
C++bign类高精度模板
最新推荐文章于 2017-12-12 23:34:00 发布
这篇博客介绍了一个C++实现的bign类,用于处理大整数的加减乘除和比较操作。该类使用数组存储大整数,并实现了相关运算符重载,包括加法、减法、乘法、除法和取模。此外,还包含了输入输出流的友元操作符,方便在main函数中进行测试和输出。
摘要由CSDN通过智能技术生成