Re: [問題] 怎麼用程式把所有排列可能列出

看板puzzle作者 (日本打狗中華勦共)時間20年前 (2003/11/08 18:02), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
#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
文章代碼(AID): #_hByjve (puzzle)
文章代碼(AID): #_hByjve (puzzle)