P1755 斐波那契的拆分 求助PAC
  • 板块题目总版
  • 楼主E2160
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/22 21:34
  • 上次更新2024/3/23 08:05:30
查看原帖
P1755 斐波那契的拆分 求助PAC
796690
E2160楼主2024/3/22 21:34

我这个CZS觉得一点毛病没有,思路如下,请各位大佬指教: 先找到longlong内的所有斐波那契数,再从大往小找,如果给的那个N可以减掉这个斐波那契数就减掉,直到便利完所有斐波那契数,然后如你所见的第3、5个点WA

#include <iostream>
#include <stack>
using namespace std;
long long t,n,f[40];
int main()
{
    cin>>t;
    f[0]=1;
    f[1]=1;
    for(int i=2;i<37;i++)
        f[i]=f[i-1]+f[i-2];
    while(t--)
    {
        stack <long long> nums;
        cin>>n;
        cout<<n<<"=";
    	for(int i=35;i>=0;i--)
    	{
    	    if(f[i]<=n)
            {
                n-=f[i];
                nums.push(f[i]);
            }
    	}
        while(!nums.empty())
        {
            cout<<nums.top();
            nums.pop();
            if(!nums.empty())
                cout<<"+";
        }
        cout<<endl;
    }
    return 0;
}
2024/3/22 21:34
加载中...