- 論壇徽章:
- 0
|
算法問題?
我給一個(gè)程序,拋磚引玉。記得上次有一個(gè)問題,我第一個(gè)回的,結(jié)果后面回了n多算法,每個(gè)都要跟我的比較比我的好在哪里:(
我的程序的好處是n和m可以訂制,比如這個(gè)問題n=9, m=3。
另一個(gè)問題,如果要就題論題的話,也挺好解決,comb函數(shù)中每次選三個(gè)就行了,不過要改成加一個(gè)參數(shù)k使得n=m*k的情況就要麻煩一點(diǎn)。[code]#include <stdio.h>;
#include <stdlib.h>;
#define MAXN 1000
int selected[MAXN]={0};
int n;
void comb(int start , int m)
{
int i;
if(m==0)
{
for(i=0; i<n; i++)
if(selected[i])
printf("%d ",i+1);
printf("\n");
}
else
for(i=start; i<=n-m; i++)
{
selected[i]=1;
comb(i+1, m-1);
selected[i]=0;
}
}
/*----------------------------------
|
|