社区讨论
提供个思路,函数循环的做法
P1010[NOIP 1998 普及组] 幂次方参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m6frliht
- 此快照首次捕获于
- 2025/01/28 08:54 去年
- 此快照最后确认于
- 2025/01/28 17:37 去年
CPP
#include<iostream>
#include<iomanip>
#include<cmath>
#include<vector>
using namespace std;
int mi(int n){
int sum=1;
for(int i=0;i<n;i++){
sum*=2;
}
return sum;
}
void inn(int n){
vector<int> all;
for(int i=0;;i++){
if(mi(i+1)>n){
n-=mi(i);
all.push_back(i);
i=-1;
if(n==0) break;
}
}
for(int i=0;i<all.size();i++){
cout<<2;
if(all[i]>1){
cout<<"(";
inn(all[i]);
cout<<")";
}
if(all[i]==0){
cout<<"(0)";
}
if(i<all.size()-1) cout<<"+";
}
}
int main(){
int n;
cin>>n;
inn(n);
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...