作者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