pascal 由鍵盤上輸入任意n個一位數數輸出它的全排列

時間 2025-01-27 09:40:25

1樓:

汗……樓上的太有才了!

const n=5;

varx:array[1..10] of integer;

y:array[1..10] of boolean;

procedure outit;

var i:integer;

beginfor i:=1 to n dowrite(x[i]);

writeln;

end;procedure search(v:integer);

var i:integer;

beginif v>n then begin outit;exit;end;

for i:=1 to n do

if y[i] then

begin x[v]:=i;y[i]:=false;search(v+1);y[i]:=true;end;

end;begin

fillchar(y,sizeof(y),true);

search(1);

end.說明:使用非遞迴的好處是節約記憶體,當一些題目對記憶體消耗較大時,建議使用非遞迴方式;但使用遞迴方式在程式執行時間上要好一些,因為在每個節點擴充套件時,遞迴方式少乙個範圍超界判斷。

pascal:程式設計找出由鍵盤任意輸入三個整數中的最大的數的過程

2樓:聖影流光

//好吧,用過程做。

var a,b,c:longint;

主程式定義。

procedure max(x,y:longint);

beginif (x>y) then a:=x else a:=y;

end;/以上是過程,附主程式。

beginreadln(a,b,c);

max(a,b);

max(a,c);

writeln(a);

end./測過了,可以用。

我用pascal求n個數的全排列為什麼輸出是 n!個第一種排列方法?

3樓:網友

if not used[i] then

beginused[i]:=true;

ans[i]:=i;

dfs(k+1);

used[i]:=false;

end;這裡ans[i]=i 應該為ans[k]=i乙個小錯誤。。

求解pascal全排列題目:題目輸入n,然後把n個1和n個2全排列出來,求解。。有滿意答案++分

4樓:網友

已寫好,並經過除錯無誤。

pascal語言:有2*n的乙個長方形方格,用乙個1*2的骨牌鋪滿方格。鍵盤輸入任意乙個n,輸出共有幾種方法。

5樓:pascal真人

這道題先分析一下:

1個:1種。

2個:2種。

3個:3種。

4個:5種。

5個:8種。

於是我們就得到了乙個規律:a[b]:=a[b-1]+a[b-2];

則:vara1:longint;

a2,a3,a4,a5:qword;

beginreadln(a1);

case a1 of

1:write(1);

2:write(2);

else begin

a2:=1;

a3:=2;

while a1<>2 do

begina1:=a1-1;

a5:=a2+a3;

a2:=a3;

a3:=a5;

end;write(a3);

end;end.

但是 我們馬上就發現了乙個缺點:當資料大於30時就會陣列越界,所以我們要用高精度:

vara1,a2,a3,a4:longint;

a,s,f:array[0..10000] of longint;

beginreadln(a1);

case a1 of

1:write(1);

2:write(2);

else begin

a[10000]:=1;

s[10000]:=2;

while a1<>2 do

begina1:=a1-1;

for a2:=10000 downto 1 do

beginf[a2]:=f[a2]+a[a2]+s[a2];

if f[a2]>9 then begin f[a2-1]:=f[a2] div 10; f[a2]:=f[a2] mod 10; end;

end;for a2:=1 to 10000 do

begina[a2]:=s[a2];

s[a2]:=f[a2];

f[a2]:=0;

end;end;

for a2:=1 to 10000 do if s[a2]<>0 then break;

for a1:=a2 to 10000 do write(s[a1]);

end;end;

end.可以看一下書的 有這個例題。

不想留讚的、不贊同的,請給個面子~快點吧。

free pascal程式設計找出由鍵盤任意輸入三個整數中的最大數.用函式做.

6樓:網友

這個解釋太拗口,也太狹義。。難道感動僅僅只是「同情或嚮慕」嗎?個人覺得感動比這更為豐饒,更為遼闊、深邃。。

我倒很願意接受來自它字面的解釋:感情動起來了。。感情能夠動起來,這就是一種能力。。

你的眼睛柔和起來,如溫暖的陽光普照在眼前的事物上;你的耳朵敏銳起來,**才能清泉般淌入你的心靈;你的手心不由自主地出汗,好像無意中撞見了愛神維納斯;你的足弓輕輕彈起,似乎想如赤足的祖先盡情狂奔在蒼茫的大地上;你的內心像有一支羽毛輕輕劃過,纖細而敏感的漣漪輕輕擴散……擁有這樣的能力讓你的人生更加充盈,讓你的世界更加美好。。

輸入乙個整數n,求它各位上的數字和 pascal

7樓:網友

給乙個函式吧:

function weishu(n:qword):word;

vars:string;

i:byte;

function v(s:string):byte;

var c:byte;

beginval(s,v,c);

end;begin

str(n,s);

weishu:=0;

for i:=1 to length(s) doinc(weishu,v(s[i]))

end;n在qword的範圍內。

8樓:

先把各位數分出來。

再加在一起。

從鍵盤上輸入乙個正整數N 求階乘

scanf d n 要加雙引號。printf the result is d s 整數輸出。鍵盤輸入乙個正整數n,計算整數n的階乘n!long fac int k return result void main while m 0 s fac m printf d ld m,s 標頭檔案的部分省去了...

由鍵盤輸入任意字串 然後顯示出來

冠月朗 data segment keyboard db 256,256 dup data ends code segment assume cs code,ds datamain proc far mov ax,data mov ds,ax lea dx,keyboard mov ah,0ah 輸...

C語言從鍵盤上任意輸入圓的半徑,求圓的面積,可以無限次輸

藤原子大雄 計算機程式設計c語言 b卷 選擇題 每小題1.5分,共24分 1 以下不c語言關鍵字的是 a 是student b break c select d int ac都不是 2 已知a,b是整形變數,則以下合法的表示式為 a a a a 1 b a b b a c a 5 d a b 2.5...