全排列问题pascal解题程序
生活随笔
收集整理的這篇文章主要介紹了
全排列问题pascal解题程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
var
a,b:array[0..9]of longint;
n:longint;
procedure print;
var
i:longint;
begin
? ? for i:=1 to n do
? ? write(a[i]:5);//要保留五個常寬
? ? writeln;
end;
procedure search(dep:longint);//dep是當前填到的第幾個數
var
i:longint;
begin
? ? if dep>n then//如果填完了就輸出
? ? begin
? ? ? ? print;
? ? ? ? exit;
? ? end;
? ? for i:=1 to n do//n個位置
? ? begin
? ? ? ? if b[i]=0 then//若第i個位置還沒填
? ? ? ? begin
? ? ? ? ? ? b[i]:=1;//變為已用
? ? ? ? ? ? a[dep]:=i;//把i填進去
? ? ? ? ? ? search(dep+1);//搜下一位
? ? ? ? ? ? b[i]:=0;//回溯
? ? ? ? end;
? ? end;
end;
begin
? ? read(n);
? ? fillchar(b,sizeof(b),0);//賦值
? ? search(1);//搜索
end.
a,b:array[0..9]of longint;
n:longint;
procedure print;
var
i:longint;
begin
? ? for i:=1 to n do
? ? write(a[i]:5);//要保留五個常寬
? ? writeln;
end;
procedure search(dep:longint);//dep是當前填到的第幾個數
var
i:longint;
begin
? ? if dep>n then//如果填完了就輸出
? ? begin
? ? ? ? print;
? ? ? ? exit;
? ? end;
? ? for i:=1 to n do//n個位置
? ? begin
? ? ? ? if b[i]=0 then//若第i個位置還沒填
? ? ? ? begin
? ? ? ? ? ? b[i]:=1;//變為已用
? ? ? ? ? ? a[dep]:=i;//把i填進去
? ? ? ? ? ? search(dep+1);//搜下一位
? ? ? ? ? ? b[i]:=0;//回溯
? ? ? ? end;
? ? end;
end;
begin
? ? read(n);
? ? fillchar(b,sizeof(b),0);//賦值
? ? search(1);//搜索
end.
轉載于:https://www.cnblogs.com/YYC-0304/p/9500260.html
總結
以上是生活随笔為你收集整理的全排列问题pascal解题程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NOIP2016普及组复赛第一题的AC程
- 下一篇: 有重复元素的排列问题pascal题解