社区讨论
83pets,大佬求调
P1755斐波那契的拆分参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lzhzretr
- 此快照首次捕获于
- 2024/08/06 13:40 2 年前
- 此快照最后确认于
- 2024/08/06 14:44 2 年前
CPP
#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;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...