修改后的代码:
```cpp
#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cstring>
using namespace std;
int n,k,x,a[25],i=1,d;
void print(){
for (int i=1;i<=k;i++)
printf ("%3d",a[i]);
printf ("\n");
}
void dfs(){
if (x>k||d==n){print();i--;return;}
if (x<=k&&d==n)return;
for (i=1;i+d<=n;){
a[x++]=d;
d+=i;
dfs();
x--;
d-=i;
if (d!=n)i++;
}
}
int main(void){
cin>>n>>k;
for (int j=1;j<=n-k;j++){
x=1;
d=j;
dfs();
}
}
```
by yltx @ 2017-08-31 18:21:42
只有10分
by yltx @ 2017-08-31 18:22:02