83pets,大佬求调
查看原帖
83pets,大佬求调
745896
hagoubang123楼主2024/8/6 13:38
#include <bits/stdc++.h>
using namespace std;
int t,m=0,d[100000005];
int main(){
	cin >> t;
	d[0]=1;
	d[1]=1;
	for(int i=2;i<100000005;i++){
		d[i]=d[i-1]+d[i-2];
	}
	while(t--){
		int a;
		cin >> a;
		int u=a;
		if(a==1){
			cout << "1=1" << endl;
			continue;
		}else if(a==2){
			cout << "2=2" << endl;
			continue;
		}else if(a==3){
			cout << "3=1+2" << endl;
			continue;
		}
		for(int i=0;i<100000005;i++){
			if(d[i]>a){
				m=i-1;
				break;
			}
		}
		int s[100000005];
		int h=0;
		for(int i=m;i>=0 && a!=0;i--){
			if(d[i]<=a){
				s[h++]=d[i];
				a-=d[i];
			}
		}
		cout << u << "=";
		for(int i=h-1;i>=1;i--){
			cout << s[i] << "+";
		}
		cout << s[0] << endl;
	}
	return 0;
}
2024/8/6 13:38
加载中...