编译失败了
  • 板块P1255 数楼梯
  • 楼主San_yu
  • 当前回复13
  • 已保存回复14
  • 发布时间2025/2/3 17:51
  • 上次更新2025/2/3 23:10:32
查看原帖
编译失败了
1469663
San_yu楼主2025/2/3 17:51
#include<iostream>
using namespace std;
const int maxn = 1670;
struct Bigint {
	int len, a[maxn];
	Bigint(int x = 0) {
		memset(a, 0, sizeof(a));
		for (len = 1; x; len++)
		{
			a[len] = x % 10, x /= 10;
		}
		len--;
	}
	int& operator[](int i) {
		return a[i];
	}
	void flatten(int L)
	{
		len = L;
		for (int i = 1; i <= len; i++)
			a[i + 1] += a[i] / 10, a[i] %= 10;
		for (; !a[len];)
			len--;
	}
	void print()
	{
		for (int i = max(len, 1); i >= 1; i--)
			printf("%d", a[i]);
	}
};
Bigint operator+(Bigint a ,Bigint b)
{
	Bigint c;
	int len = max(a.len, b.len);
	for (int i = 1; i <= len; i++)
		c[i] += a[i] + b[i];
	c.flatten(len + 1);
	return c;
}
int n;
int main()
{
	cin >> n;
	Bigint f[5005];
	f[1] = Bigint(1);
	f[2] = Bigint(2);
	for (int i = 3; i <= n; i++)
	{
		f[i] = f[i - 1] + f[i - 2];
	}
	f[n].print();
	return 0;
}
2025/2/3 17:51
加载中...