作者ronnywang (日本打狗中华剿共)
看板puzzle
标题Re: [问题] 怎麽用程式把所有排列可能列出
时间Sat Nov 8 18:07:10 2003
#include <stdio.h>
int num[20]; // 要印出的组合
int used[20]; // 某个数字是否使用过
int n; // 要印多少个数字
void lalala(int a){
int i;
if (a == n){
/* 这边印出 num[] 这个阵列的结果 */
}
else {
for (i = 0 ; i < n ; i ++){
if (used[i] == 0){
num[a] = i;
used[i] = 1;
lalala(a + 1);
used[i] = 0;
}
}
}
}
int main(){
/* 这边输入 n ,让n 等於你想要印 1 ~ n 的组合 */
lalala(0);
}
※ 引述《Manbot (manbot)》之铭言:
: 若有N个不同的东西
: 就会有N!不同的排列方法
: 那我们该怎麽用程式列出N!种的可能呢
: 就拿1-9九个数字当例子
: 9!种...要怎麽有效改变排列才能完成呢
: ---------------
: 想了好久都想不出来
--
人口压力,请交给保险套解决
不要交给战争、堕胎或疾病
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.95.27