Hogyan kell ezt megcsinálni C-ben?
A feladat:
Írj programot, mely egy 100 elemű long long unsigned tömb első két elemét beolvassa a standard inputról, majd a Fibonacci-sorozat
Fn=Fn-1+Fn-2
rekurzív szabályát alkalmazva feltölti a tömböt. A program írja ki a standard outputra az utolsó olyan tömbelem indexét, melyben tárolt érték még nem csordult túl.
A túlcsordulás detektálása általános esetben nehéz feladat, hardvertámogatást igényel. Jelen speciális sorozat esetén a számértékek vizsgálatával megtehető, gondolj ki egy megfelelő módszert.
Ügyelj a beolvasás formátumkódjára!
Amit én eddig csináltam:
Hogyan kéne azt megoldani, hogy akkor már írja ki a szám sorszámát, amikor már túlcsordulna?
"while(fibonacci[i<2e32])"
Ezt nézd meg jobban :)
Konkrétan bele sem lépsz abba a ciklusba, tehát a program nem csinál semmit.
Amúgy nálam le sem futott, amíg nem írtam át a formátumkódokat "%llu"-ra.
Beolvasol két számot x-be és y-ba, de semmi nem történik velük.
Ezeket kellene a tömböd első két elemeként beállítani.
Utána végiggenerálni a számokat a 100. elemig.
Itt még nem kell a túlcsordulást figyelned.
Ha eddig van egy működő kódod és nem jössz rá a végére, akkor segítek. De igazából a feladatot jól elolvasva rá lehet jönni. Egyszerű.
Most már van egy működő kódom (szerintem), de még mindig fogalmam sincsen, hogy mit kéne csinálni a túlcsordulással.
Egyébként a ciklusod még nem teljesen jó.
Nézd meg a tömböd első néhány számát a generálás után!
A fibonacci számok folytonosan növekednek.
Vagyis ha a szám ahol tartasz kisebb mint az előző, akkor rossz. (mert ha túlcsordul, kisebb lesz)
Hát, igazából most már félig jó elvileg a programom, de nem működik mindegyik számra. Például, ha azt írom be, hogy 0 és 1, akkor nem működik már jól, de nem igazán értem, hogy pontosan miért.
Írtam a #6-osban, hogy nem jó a ciklusod.
Egyelőre nem akarom konkrétan megmondani a hibát.
Gondolod át, hogy "i" mettől meddig kell, hogy menjen!
Valamint kétszer írod ki az "i"-t a végén :)
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!