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
- 标签
- (无)
- 递交数
- 58
- 已通过
- 31
- 上传者