为甚是二十分!?!明明用了高进度。
查看原帖
为甚是二十分!?!明明用了高进度。
1242208
wyp20130701_是一个蒟蒻楼主2024/7/22 12:17
#include <iostream>
using namespace std;
short f[5005][5500];
inline void jia(int p1,int p2,int p3)
{
	short x = 0,len = 0;
	for (int i = 1;i <= 5499;i++)
	{
		f[p3][i] = f[p1][i] + f[p2][i] + x;
		x = f[p3][i] / 10;
		f[p3][i] %= 10;
		len++;
	}
	f[p3][len] = x;
	return ;
}
inline void print(int n,int pos)
{
	for (int i = 1;i <= pos;i++)
	{
		cout << f[n][i];
	}
	return ;
}
int main()
{
	f[1][1] = 1;
	f[2][1] = 2;
	int n;
	cin >> n;
	for (int i = 3;i <= n;i++)
	{
		jia(i - 1,i - 2,i);
	}
	short pos = 5499;
	while (f[n][pos] == 0)
	{
		pos--;
	}
	print(n,pos);
	return 0;
}//f[x][y]表示数列第x项高精度第y位。
2024/7/22 12:17
加载中...