Ezt hogyan lehetne jobban/hatékonyabban/elgánsabban megoldani Pascalban?
Ez lenne a feladat:Állítsuk elő és írassuk ki az első N darab Fibonacci-számot. Ennek a sorozatnak az a jellemzője, hogy bármelyik eleme egyenlő az előző kettő összegével. A sorozat néhány eleme: 1, 1, 2, 3, 5, 8, 13, ...
Én megcsináltam, de hogyha azt írjuk be neki hogy n=1, akkor is az első 2-t írja ki. (egyébként egymásbaágyazott ciklusokkal kellene megoldani, de nem értem, hogyan kéne úgy)
Itt lenne az általam készített kód:
program fibonacci;
var a,b,c,i,n,k:integer;
begin
writeln('Az elso hany fibonacci szamot irjam ki? ');
readln(n);
a:=1;
b:=1;
c:=2;
write(a,',',b,',');
for i:=1 to n-2 do begin
write(c);
k:=c;
c:=c+b;
b:=k;
write(',');
end;
end.
Előre is köszönöm a válaszokat.
Hát mivel az első kettőt mindig kiírod, annyira nem meglepő, hogy kiírja.
Elegánsabban pedig rekurzívan lehetne megoldani.
var i, n, Fib, Fib1, Fib2 : integer;
begin
Fib := 1;
Fib1 := 1;
Fib2 := 0;
Write('Az elso hany fibonacci szamot irjam ki? ');
ReadLn(n);
for i := 0 to n - 1 do
begin
Write(Fib, ' ');
Fib := Fib2 + Fib1;
Fib2 := Fib1;
Fib1 := Fib;
end;
ReadLn;
end.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!