#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
using namespace std;
const int MAX = 110;
class CHugeInt {
public:
int a[2 * MAX];
int len;
CHugeInt():len(0) { memset(a, 0, sizeof(a)); }
CHugeInt(char c[]){
memset(a, 0, sizeof(a));
len = strlen(c);
for (int i = 0;i < len; ++i) {
a[i] = c[len - 1 - i] - '0';
}
}
CHugeInt(int n){
memset(a, 0, sizeof(a));
if (n == 0) {
len = 1;
}
else {
int wei = 0;
while (n > 0) {
wei++;
a[wei - 1] = n % 10;
n = n / 10;
}
len = wei;
}
}
CHugeInt operator+ (CHugeInt & b) {
CHugeInt c;
int temp;
int ci = 0;
for (int i = 0;i < len || i < b.len; ++i) {
temp = a[i] + b.a[i] + ci;
ci = temp / 10;
c.a[c.len++] = temp % 10;
}
if (ci != 0) {
c.a[c.len++] = ci;
}
return c;
}
CHugeInt operator+ (int n) {
CHugeInt b = CHugeInt(n);
CHugeInt c;
int temp;
int ci = 0;
for (int i = 0;i < len || i < b.len; ++i) {
temp = a[i] + b.a[i] + ci;
ci = temp / 10;
c.a[c.len++] = temp % 10;
}
if (ci != 0) {
c.a[c.len++] = ci;
}
return c;
}
friend CHugeInt operator+ (int a, CHugeInt & b) {
return b + a;
}
operator char* () {
static char res[2 * MAX];
for (int i = 0;i <len;++i) {
res[i] = a[len - i - 1] + '0';
}
res[len] = '\0';
return res;
}
CHugeInt& operator+= (int n) {
CHugeInt b = CHugeInt(n);
CHugeInt c;
int temp;
int ci = 0;
for (int i = 0;i < len || i < b.len; ++i) {
temp = a[i] + b.a[i] + ci;
ci = temp / 10;
c.a[c.len++] = temp % 10;
}
if (ci != 0) {
c.a[c.len++] = ci;
}
memcpy(a, c.a, sizeof(a));
len = c.len;
return * this;
}
CHugeInt & operator++ () {
CHugeInt b = CHugeInt(1);
CHugeInt c;
int temp;
int ci = 0;
for (int i = 0;i < len || i < b.len; ++i) {
temp = a[i] + b.a[i] + ci;
ci = temp / 10;
c.a[c.len++] = temp % 10;
}
if (ci != 0) {
c.a[c.len++] = ci;
}
memcpy(a, c.a, sizeof(a));
len = c.len;
return *this;
}
CHugeInt operator++ (int ff) {
CHugeInt res(*this);
CHugeInt b = CHugeInt(1);
CHugeInt c;
int temp;
int ci = 0;
for (int i = 0;i < len || i < b.len; ++i) {
temp = a[i] + b.a[i] + ci;
ci = temp / 10;
c.a[c.len++] = temp % 10;
}
if (ci != 0) {
c.a[c.len++] = ci;
}
memcpy(a, c.a, sizeof(a));
len = c.len;
return res;
}
};
int main()
{
char s[210];
int n;
while (cin >> s >> n) {
CHugeInt a(s);
CHugeInt b(n);
cout << a + b << endl;
cout << n + a << endl;
cout << a + n << endl;
b += n;
cout << ++ b << endl;
cout << b++ << endl;
cout << b << endl;
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现