关于IDE
  • 板块学术版
  • 楼主XURUIFAN
  • 当前回复2
  • 已保存回复4
  • 发布时间2024/9/1 11:57
  • 上次更新2024/9/1 17:07:52
查看原帖
关于IDE
1288333
XURUIFAN楼主2024/9/1 11:57

P1045代码如下

#include<bits/stdc++.h>
using namespace std;
int p;
struct nums {
	int num[25010];
	void __init__() {
		memset(num, 0, sizeof(num));
	}
	void jw() {
		for (int i = 1; i <= 500; i++) {
			num[i + 1] += num[i] / 10;
			num[i] %= 10;
		}
		for (int i = 501; i < 25010; i++) num[i] = 0;
		num[0] = 0;
	}
	nums operator *(nums a) {
		nums ans;
		ans.__init__();
		for (int i = 1; i <= 500; i++) for (int j = 1; j <= 500; j++) ans.num[i + j - 1] += num[i] * a.num[j];
		ans.jw();
		return ans;
	}
	nums operator *(int p) {
		for (int i = 1; i <= 500; i++) this->num[i] *= p;
		this->jw();
		return *this;
	}
	friend ostream& operator <<(ostream&, const nums& a) {
		for (int i = 500; i > 0; i--) {
			cout << a.num[i];
			if (i % 50 == 1) cout << "\n";
		}
		return cout;
	}
} num;
nums make_nums(int n) {
	nums a;
	a.__init__();
	a.num[1] = n;
	a.jw();
	return a;
}
nums quickly_pow(nums a, int p) {
	if (p == 0) return make_nums(1);
	if (p == 1) return a;
	nums ans = quickly_pow(a, p / 2);
	return (p % 2 ? ans * ans * a : ans * ans);
}
int main() {
	cin >> p;
	cout << (int)(p * 0.30102999566) + 1 << "\n";
	num = quickly_pow(make_nums(2), p);
	num.num[1]--;
	cout << num;
   return 0; 
}

本地运行输入1024会异常退出但是在洛谷在线IDE就可以正常使用 提交后也是AC
所以为什么本地会异常退出,在线IDE和评测机都可以正常运行

2024/9/1 11:57
加载中...