3 條題解
-
0
自然数的拆分!
需要注意:当长度是1的时候不输出,且按照规律每一位应大于等于前一位
#include<bits/stdc++.h> using namespace std; int n,cnt,ans[100000]; void dfs(int res,int las) { if(res==0&&cnt!=1)//长度大于1,输出 { cout<<n<<"="; for(int i=1;i<=cnt;i++) { if(i!=1)cout<<"+"<<ans[i]; else cout<<ans[i]; } cout<<endl; return ; } for(int i=las;i<=res;i++)//搜索 { cnt++; ans[cnt]=i; dfs(res-i,i); cnt--; } } int main() { cin>>n; dfs(n,1); return false; }
資訊
- ID
- 537
- 時間
- 1000ms
- 記憶體
- 128MiB
- 難度
- 3
- 标签
- (無)
- 遞交數
- 61
- 已通過
- 34
- 上傳者