pascal回溯pascal回溯

2021-03-08 20:51:16 字數 1325 閱讀 6914

1樓:聽不清啊

var a:array[1..20,1..20]of integer;

s:set of 1..20;

min,sum,n,i,j:integer;

procedure work(r:integer);

var i:integer;

begin

for i:=1 to n do

if not (i in s) then

begin

s:=s+[i]; inc(sum,a[r,i]);

if r=n then

if sum

s:=s-[i]; dec(sum,a[r,i]);

end;

end;

begin

read(n);

for i:=1 to n do

for j:=1 to n do

read(a[i,j]);

s:=; min:=maxint;

work(1);

writeln(min);

end.

2樓:你大爺

program e;

varn,t:longint;

a:array[1..8] of integer;

flag:array[1..8] of boolean;

procedure search(depth:integer);

vari:integer;

begin

if(depth>n) then

begin

for i:=1 to n do write(a[i]:4);

writeln;

inc(t);

exit;

end;

for i:=1 to n do

if flag[i]=false thenbegin

a[depth]:=i;

flag[i]:=true;

search(depth+1);

flag[i]:=false;

end;

end;

begin

writeln('input n:');

read(n);

t:=0;

fillchar(flag,sizeof(flag),false);

search(1);

writeln('total=',t);

end.

下面一題只要略作修改就行了,自己編吧……………^_^打字不易,如滿意,望採納。

Pascal詳解 指標型別 ,pascal所有資料型別

第十一章 指標型別 11.1 指標 11.2 單鏈表 11.1 指標 指標是通過位址來訪問變數的一種特殊的資料型別,屬於動態的資料結構,它可以在需要時產生,用完後則又可以取消或 以減少占用的記憶體空間。指標變數與其他型別的變數不同,它占有的不是資料,而是位址。由於動態資料結構的變數是在程式執行過程中...

pascal問題求解

隻數 n x div 4 x mod 4 0,1,2,3 0元 全4元的 1元 乙隻5元的 2乙隻元6元 3元乙隻5元的,乙隻元6元,4元的 n 2,程式在下面,錢太少會有1 3元剩餘的!7元有1元剩餘,3 1元,買不起鋼筆全是剩餘的 program pen x var n4,n5,n6,x int...

關於pascal語言

這個寫的不夠全面,不過演算法思路是正確的 這是用的輾轉相除法 例如24和60的最大公約數是6 那麼兩數應該都是6的倍數 那麼兩數相除所得的餘數也應該是6的倍數 即12為6的倍數 與這個一樣 設a與b的最大公約數是k a b那麼a mod b也一定是k的整數倍 然後用迴圈算直到b 0,此時a的值就是k...