前田稔(Maeda Minoru)の超初心者のプログラム入門
![]()
![]()
/*********************************/
/*★ 順列を求める 前田 稔 ★*/
/*********************************/
using System;
class Prog
{
const int NUM = 4;
static int[] tbl = new int[NUM];
//★ MAIN PROGRAM
public static void Main()
{
int i;
for(i=0; i<NUM; i++) tbl[i]= i+1;
jyun(tbl,NUM);
Console.ReadLine();
}
// 順列を求める
static void jyun(int[] t, int n)
{ int i,k,w;
if (n<2)
{ list();
return;
}
k= n-1;
for(i=n-1; i>=0; i--)
{ w= t[k]; //t[k] と t[i] を入れ替える
t[k]= t[i];
t[i]= w;
jyun(t,k);
t[i]= t[k]; //t[k] と t[i] を元に戻す
t[k]= w;
}
}
// 順列を List
static void list()
{ int i;
for(i=0; i<NUM; i++) Console.Write("{0} ",tbl[i]);
Console.WriteLine("");
}
}
|
| const int NUM = 4; |
|
for(i=0; i<NUM; i++) tbl[i]= i+1; jyun(tbl,NUM); |
for(i=n-1; i>=0; i--)
{ w= t[k]; //t[k] と t[i] を入れ替える
t[k]= t[i];
t[i]= w;
jyun(t,k);
t[i]= t[k]; //t[k] と t[i] を元に戻す
t[k]= w;
}
|
![]()
1 2 3 4 2 1 3 4 1 3 2 4 3 1 2 4 3 2 1 4 2 3 1 4 1 2 4 3 2 1 4 3 1 4 2 3 4 1 2 3 4 2 1 3 2 4 1 3 1 4 3 2 4 1 3 2 1 3 4 2 3 1 4 2 3 4 1 2 4 3 1 2 4 2 3 1 2 4 3 1 4 3 2 1 3 4 2 1 3 2 4 1 2 3 4 1 |
![]()