求助,20分,本地结果正确,lg不行
  • 板块P1255 数楼梯
  • 楼主pshong
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/31 17:12
  • 上次更新2023/11/2 10:32:46
查看原帖
求助,20分,本地结果正确,lg不行
949820
pshong楼主2023/10/31 17:12
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

int n;
vector<int> res;
vector<int> add(vector<int>&a,vector<int>& b)
{
	if(a.size() < b.size()) return add(b,a);
	vector<int> c;
	int t;
	for(int i = 0;i < a.size();i++)
	{
		t += a[i];
		if(i < b.size()) t += b[i];
		c.push_back(t%10);
		t/=10;
	}
	if(t) c.push_back(t); 
	while(c.size() && c.back() == 0) c.pop_back();
	return c;
}

int main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	
	cin>>n;
	if(n < 3)
	{
		cout<<n;
		return 0;
	}
	
	vector<int> t1,t2;
	t1.push_back(1);t2.push_back(2);
	for(int i = 3;i <= n;i ++)
	{
		res = add(t1,t2);
		t1.assign(t2.begin(),t2.end());
		t2.assign(res.begin(),res.end());
	}
	for(int i = res.size()-1;i >= 0;i --) cout<<res[i];
	
	return 0;
}
2023/10/31 17:12
加载中...