生成彩票数字问题
1 #include <stdio.h> 2 #define MAXN 7 //设置每一注彩票的位数 3 #define NUM 29 //设置组成彩票的数字 4 int num[NUM]; 5 int lottery[MAXN]; //每一注彩票的每一位数 6 void combine(int n, int m) 7 { 8 int i,j; 9 for(i=n;i>=m;i--) 10 { 11 lottery[m-1]=num[i-1]; //保存一位数字 12 if (m>1) 13 combine(i-1,m-1); 14 else //若m=1,输出一注号码 15 { 16 for(j=MAXN-1;j>=0;j--) 17 printf("%3d",lottery[j]); 18 getch(); 19 printf("\n"); 20 } 21 } 22 } 23 24 //试探法or回溯法 25 int main() 26 { 27 int i,j; 28 for(i=0;i<NUM;i++) //设置彩票各位数字 29 num[i]=i+1; 30 for(i=0;i<MAXN;i++) 31 lottery[i]=0; 32 combine(NUM,MAXN); 33 34 getch(); 35 return 0; 36 }