Első 15 db Fibonacci-szám kiíratása C-ben?
Elakadtam egy olyan feladatnál, ahol az a cél, hogy TÖMB, és FÜGGVÉNYEK használata NÉLKÜL kell megoldanom azt, hogy a program kiírja az első 15 Fibonacci számot. Tömbbe rém egyszerű persze, de a nélkül fogalmam sincs, hogy mihez kezdjek. Odáig jutottam csak, hogy egymásba ágyazott for ciklusokat írtam fel, ahol a belső ciklus mindig a külső ciklus mögött jár eggyel (tehát míg a külső ciklus i-edik ciklusban tart, addig a belső az (i-1)-edikben), így valahogy meg tudnám azt oldani, hogy 2 változóban el tudjam tárolni az aktuális szám előtti 2 db számot is. (amiket össze kell adni ugyebár, hogy megkapjam az aktuális számot)
Ha valaki érti egyáltalán, hogy miről beszélek, szóljon, hogy jó irányban vagyok, vagy teljesen más megoldást kell kitaláljak?
Tömb nélkül is marha egyszerű dolgod van. Egyetlen darab ciklusra van szükséged. Nem kell letárolnod az eredményeket, csak kiíratni az első 15-öt.
fib(n) = fib(n-2) + fib(n-1). (A sorozat első két eleme 1-es)
Három változóra van tehát szükséged. (Vagy swap eljárás használatával kettőre) Kezdeti értékük legyen 1, 1, inicializálatlan. Az algoritmust próbáld kitalálni ez alapján. Nem lesz nehéz, de ha elakadtál, szólj. A lényeg, hogy ehhez nem kell egymásba ágyazott ciklus.
Én egyszerűen akkor is mindig abba az átkozott egymásba ágyazott ciklusokba lyukadok ki. :@ Íme az, amit eddig ki tudtam az agyamból paszírozni.
#include <stdio.h>
int main (void)
{
...int i, num1, num2, fibo;
...num1 = 1;
...num2 = 1;
...for (i = 1; i = 1;){
......fibo = num1 + num2;
......printf ("%i\n", fibo);
? ? ? ? ?
......}
......return 0;
}
Mi az istent írjak a kérdőjelek helyére? Vagy még ez sem az igazi? Kezdő programozó vagyok, ezért még nem nagyon állt rá az agyam ezekre az algoritmusokra. Az alapokat értem. Képleteket, tömböket, ciklusokat is értem, de az ilyen úgy fel tud húzni, amikor nem arra kíváncsi a feladat, hogy megértettem-e az anyagot, hanem, hogy mennyi logikám van ehhez...Ezért most inkább azt kérem tőled(tőletek), hogy (abban az esetben, ha még mindig távol állnék a megoldástól) küldjetek inkább egy megoldást, és annak megértése után én teljesen boldog leszek.
a for-nál rosszat másoltam!
ez lenne helyette:
for (i = 1; i <= 15; ++i)
printf("0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377\n");
Tömbök nélkül. Függvényt sajnos muszáj vagy használni, mert a kiiratás bajos anélkül.
Nem kell megköszönni.
Eez igen! Erre még nem is gondoltam! De tényleg! Hogy neked milyen nagy eszed van...
Félretéve a túlzott iróniát, csak "halkan" jegyezném meg, hogy akkor az első válaszoló akkor mégis miért írta azt, hogy egyetlen ciklussal le lehet írni? De úgy látom te mindenhova odaokoskodsz. Nem is véletlen, hogy csak 46%-os válaszaid vannak.
Köszi az építő jellegű hozzászólást!
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
. .int a = 1;
. .int b = 1;
. .int c;
. .int count;
. .printf("1\n1\n");
. .for (count=3;count<=15;count++)
. .{
. . . .c = a + b;
. . . .a = b;
. . . .b = c;
. . . .printf("%i\n",c);
. .}
. .return 0;
}
'Félretéve a túlzott iróniát, csak "halkan" jegyezném meg, hogy akkor az első válaszoló akkor mégis miért írta azt, hogy egyetlen ciklussal le lehet írni?'
Miért ne írta volna? Igaza van, egyetlen ciklussal le lehet írni. Ha arra utalsz, hogy nem kell függvényeket használni, el kell, hogy keserítselek: a printf függvény, sőt, a main is függvény.
'De úgy látom te mindenhova odaokoskodsz. Nem is véletlen, hogy csak 46%-os válaszaid vannak.'
Az kérlekszépen úgy történt, hogy valahol 67% körül voltam (ez az arány jellemző az okos, ámde lusta balf*szoknak odaszóló embereknél), amikor valaki hadjáratot hírdetett ellenem, találkoztunk pár kérdésnél, nagyon okosított valamit, személyeskedett, aztán gondolom nagyon ügyesen lehúzta a %-om. De pont jó, ha az ilyen kis csírákat be tudom ugratni vele, mint te, akinek annyi esze sincs, hogy ne kezdjen el a nála okosabbaknak ugatni :3
Wampa:
Köszönöm szépen!
iostream:
"Nem kell megköszönni" Ezzel az egoista, és lenéző beszólással kezdted el az egészet. Ne várj szép szavakat ezek után. Látom, hogy segíteni akarsz, de akkor ne bunkó paraszt módjára tedd már légyszives! Egyszer mindenki volt tudatlan kezdő. Itt be is fejezem. A segítséget megkaptam, amiért hálás köszönet!
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!