5 条题解
-
2
#include<bits/stdc++.h> using namespace std; int apt[1000],naoziying; void dfs(int laobeizha/*步数*/,int laozhaji/*和*/){ if(laozhaji>naoziying){/*如果步数比和还大,那就直接返回*/ return; } if(laozhaji==naoziying){ cout<<naoziying<<"="; for(int py=1;py<laobeizha;py++){ if(py==laobeizha-1){ cout<<apt[py]; }else{ cout<<apt[py]<<"+"; } } cout<<endl; } if(laobeizha>naoziying){ return; } for(int sy=apt[laobeizha-1];sy<=naoziying-1;sy++){ apt[laobeizha]=sy; dfs(laobeizha+1,laozhaji+sy);/*选的时候步数加1,和加上i本身*/ } return; } int main(){ freopen("split.in","r",stdin); freopen("split.out","w",stdout); apt[0]=1; cin>>naoziying; dfs(1,0); return 0; }
信息
- ID
- 532
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 135
- 已通过
- 35
- 上传者