如何修改这段源码?
从一组数字1,2,3,4,...m个数中抽出k个不同的数,列出所有的组合(k<m).编码如下:
#include <stdio.h>
#define MAXN 100
int a [MAXN]
void comb(int m,int k)
{int i,j;
for(i=m;i>=k;i--){
a[k]=i;
if(k>1)
comb (i-1,k-1);
else{
for (i=a[0];j>0;j--) printf(%4d,a[j]);
printf("\n");
}
}
}
void main()
{a[0]=3, comb(5,3);
}
这是用递归法写的源码,如果增加一个条件:形成的组合中,只有一个相邻数之差为1,例如,数组(87,32,56,57,90)中,只有57与56之差为1,再如,数组(78,45,46,49,97)中,只有47与46之差为1。请大侠改之。
--------------------------------------------------------------------------------