90 WA#10?????
  • 板块P1255 数楼梯
  • 楼主foryou922
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/4 21:17
  • 上次更新2024/4/4 21:23:12
查看原帖
90 WA#10?????
648393
foryou922楼主2024/4/4 21:17
#include <bits/stdc++.h>
using namespace std;

const int MAXN=1005;

struct Big
{
	int l;
	int num[MAXN];
	void set(string s)
	{
		l=s.size();
		for(int i=1;i<=l;i++)num[i]=s[l-i]-'0';
	}
	void print()
	{
		for(int i=l;i>=1;i--)printf("%d",num[i]);
		printf("\n");
	}
};

Big operator + (Big a,Big b)
{
	Big c;
	int al=a.l,bl=b.l;
	int cl=max(al,bl);
	int u=0;
	for(int i=1;i<=cl;i++)
	{
		if(i<=al)u+=a.num[i];
		if(i<=bl)u+=b.num[i];
		c.num[i]=u%10;
		u/=10;
	}
	if(u>0)
	{
		cl++;
		c.num[cl]=u;
	}
	c.l=cl;
	return c;
}

int main()
{
    int n;
    scanf("%d",&n);
    Big a[5005];
    a[0].set("0");
    a[1].set("1");
    for(int i=2;i<=n+1;i++)a[i]=a[i-1]+a[i-2];
    if(n==0)printf("0\n");
    else a[n+1].print(); 
    return 0;
}

求调……

2024/4/4 21:17
加载中...