1 条题解
-
0
C++ :
#include <iostream> using namespace std; #define Max 100 int n,m;//n个数中选出若干数,总和为m int v[Max];//标记n个数是否被选,1选,0不选 void f(int k,int sum) { int i; if(k>n||sum<0) return;//剪枝 if(sum==0) { for(i=0;i<k;i++) if(v[i]) cout<<i+1<<' '; cout<<endl; return; } v[k]=0;//不选第k号 f(k+1,sum);//递归 v[k]=1;//选第k号 f(k+1,sum-k-1);//递归 } int main() { cin>>n>>m; f(0,m); return 0; }
- 1
信息
- ID
- 1178
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者