求问这是什么 RE 状态
  • 板块学术版
  • 楼主Gcc_Gdb_7_8_1
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/11/13 21:25
  • 上次更新2024/11/14 02:29:42
查看原帖
求问这是什么 RE 状态
1058410
Gcc_Gdb_7_8_1楼主2024/11/13 21:25

控制台(Terminal):


-----------------------------------------------
执行时间:5115.509 ms
最大内存使用:5852 KB
程序返回值:3221225725 (0xC00000FD)
-----------------------------------------------
请按任意键继续. . .

系统:Windows
代码:

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

#define LL long long
#define Pii pair<int, int>
#define ULL unsigned long long

namespace gdb7
{
    struct bigint {
        int num[1000010];
        bigint() {
            memset(num, 0, sizeof(num));
        }
        bigint(int n) {
            memset(num, 0, sizeof(num));
            num[0] = 1;
            num[1] = n;
        }
        bigint operator-(const bigint &b) const {
            bigint tmp(*this);
            for (int i = 1; i <= tmp.num[0]; ++i) {
                if (tmp.num[i] >= b.num[i]) {
                    tmp.num[i] -= b.num[i];
                } else {
                    tmp.num[i] += 10;
                    tmp.num[i + 1] -= 1;
                    tmp.num[i] -= b.num[i];
                }
            }
            return *this;
        }
        bigint operator*(const bigint &b) const {
            bigint tmp(*this);
            for (int i = 1; i <= tmp.num[0]; ++i) {
                for (int j = 1; j <= b.num[0]; ++j) {
                    tmp.num[i + j - 1] += tmp.num[i] * b.num[j];
                    tmp.num[i + j] += tmp.num[i + j - 1] / 10;
                    tmp.num[i + j - 1] %= 10;
                }
            }
            while (tmp.num[tmp.num[0] + 1]) {
                ++tmp.num[0];
            }
            while (tmp.num[tmp.num[0]] == 0 && tmp.num[0] > 1) {
                --tmp.num[0];
            }
            return tmp;
        }
    };
	int main() {
        int p;
        cin >> p;
        bigint ans(1), tmp(2);
        while (p) {
            if (p & 1) {
                ans = ans * tmp;
            }
            ans = ans * ans;
            p >>= 1;
        }
        ans = ans - 1;
        cout << ans.num[0] << endl;
        for (int i = 500; i >= 1; --i) {
            cout << ans.num[i];
        }
	    return 0;
	}
};

int main()
{
	return gdb7::main();
}
2024/11/13 21:25
加载中...