算法来源:《the art of computer programming vol 4》 算法的思路: 
 1、 将n为整数记作,a1a2…an ,初始化为0…00。 
 2、 令j = n, 计算aj = aj + 1; 当aj 等于m-1时,向高位进1,此位设为0,对所有为都重复此步骤。直到所有为都遍历完,为之。 
 
 
 此算法的c语言实现: 
 
 
 
 void mixed_radix_num(int n, int radix) { int j; 
 int *a=(int *) malloc (sizeof (int) * (n + 1)); if(!a) return; 
 for(j=0;j<=n;++j) *(a+j)=0; while(1){ print_num(a,n); j=n; while(*(a+j)==(radix-1)) { *(a+j)=0; j--; } if(j == 0) break; *(a+j)=*(a+j)+1; } free(a); a=0; } 
 
 
 此代码的关键:对于n位整数,申请n+1个整数的空间,a[0]作为哨兵位。  | 

