60分求救
  • 板块P1255 数楼梯
  • 楼主lguo
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/8/2 15:07
  • 上次更新2023/10/27 17:22:06
查看原帖
60分求救
477104
lguo楼主2022/8/2 15:07
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int n;
int a[1000001],b[10000001],c[10000001];
int l1,l2,l3;

int main()
{
	ios::sync_with_stdio(false);
	cin>>n;
	if(n==1||n==2)
	{
		cout<<n;
		return 0;
	}
	a[1]=1;
	b[1]=2;
	l1=1;
	l2=1;
	for(int i=3;i<=n;i++)
	{
		l3=max(l1,l2);
		memset(c,0,sizeof(c));
		for(int j=1;j<=l3;j++)
		{
			c[j]+=a[j]+b[j];
			c[j+1]+=c[j]/10;
			c[j]%=10;
		}
		while(c[l3+1]!=0)
			l3++;
		
		for(int j=l2;j>=1;j--)
			a[j]=b[j];
		l1=l2;
		for(int j=l3;j>=1;j--)
			b[j]=c[j];
		l2=l3;
	}
	for(int i=l3;i>=1;i--)
		cout<<c[i];
	return 0;
}

自学的高精度,找不出哪里错了。求众巨佬帮帮忙!

2022/8/2 15:07
加载中...