Re: [問題] 怎麼用程式把所有排列可能列出
看板puzzle (益智遊戲 - 數獨,拼圖,推理,西洋棋)作者ronnywang (日本打狗中華勦共)時間21年前 (2003/11/08 18:02)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
puzzle 近期熱門文章
PTT遊戲區 即時熱門文章
107
356