洛谷P1255 数楼梯

博客介绍了如何解决洛谷P1255数楼梯问题,通过斐波那契数列的递推思想,结合高精度计算,实现解决方案。文章包括四个部分:定义数组、递推函数、高精度函数和数组复制。代码展示详细,特别指出在递推函数中需注意数组值的初始化,并解释了为何只需针对c数组进行高精度操作。
摘要由CSDN通过智能技术生成

递推基础题。对于洛谷的测试,此方法可以AC。acwing不行。

此问题就是个斐波那契数列f(x)=f(x-1)+f(x-2)。但由于数据过大,只能再用高精配合

思路:

1.定义三个数组,分别代表f(x)、f(x-1)、f(x-2)。

2.一个递推函数

3.一个高精度函数

4.一个复制函数,在x值变化时改变三个数组的对应值

首先是主函数

代码:

int main()
{
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	memset(c,0,sizeof(c));
	a[0]=1;
	b[0]=2;
	int n;
	cin>>n;
	if(n==1)
	{
		cout<<1;
		return 0;
	}
	if(n==2)
	{
		cout<<2;
		return 0;
	}//这两种情况直接输出 
	for(int i=3;i<=n;i++)
	{
		louti();
		gaojing();
		fuzhi();
	}
	for(int i=cnt;i>=0;i--)
	{
		if(i==cnt&&c[i]==0)
		{
			continue;
		}
		cout<<c[i];
	}
}

  没什么好说的

  函数2(递推):

void louti()
{
	memset(c,0,sizeof(c));
	for(int i=0;i<cnt;i++)
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值