Kezdőoldal » Számítástechnika » Programozás » Ezt hogyan lehetne jobban/haté...

Ezt hogyan lehetne jobban/hatékonyabban/elgánsabban megoldani Pascalban?

Figyelt kérdés

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.



2015. jún. 28. 21:01
 1/5 anonim ***** válasza:

Hát mivel az első kettőt mindig kiírod, annyira nem meglepő, hogy kiírja.

Elegánsabban pedig rekurzívan lehetne megoldani.

2015. jún. 28. 21:03
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
Tudom, hogy azért írja ki az első kettőt. De egymásba ágyazott ciklusokkal szeretnék egy elegáns megoldást.
2015. jún. 28. 21:05
 3/5 anonim ***** válasza:
És mit fog csinálni a külső ciklus?
2015. jún. 28. 21:39
Hasznos számodra ez a válasz?
 4/5 SimkoL ***** válasza:

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.

2015. jún. 28. 21:46
Hasznos számodra ez a válasz?
 5/5 SimkoL ***** válasza:
Ez sem elegáns, mert rekurzívan sokkal szebb lenne.
2015. jún. 28. 22:16
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!