Üdv, olyan problémába szaladtam az egyik feladatomban, hogy a program végén kapok egy tömbbe számokat például:
2 3 4 7 8. Az lenne a cél, hogy ki kell íratni azt, hogy melyik a legnagyobb folyamatos növekedés. Szóval 2 3 4 és 7 8. A 2 3 4 között a különbség 4-2=2, 8-7=1, szóval a megoldás 2-4 között lesz. Úgy próbáltam megoldani, hogy nézem hogy tomb[i]-tomb[i-1==1 vizsgálattal és ameddig ez teljesül db++, és ha nem az else ágban az első és utolsó tagot rögzítsem. De utána még vizsgálni kell a maradék 7-8 között is.
Nem tudok egyszerűen megoldást találni rá c++ még teljesen új nekem és az évekig tanult nyelv elemei itt hiányoznak.
Szóval segítséget kérek, hogy valami megoldás vagy megoldásmenete lenne-e valakinek.
Jó hosszúra sikerült, de ha végig olvastad azt nagyon szépen köszönöm és a választ is előre.
1. Semmi köze a probléma nehézségének a nyelvi elemekhez, elemi eszközökkel megoldható a probléma.
2. Maximumkiválasztást kell csinálni.
3. Szerintem teljes mértékben félre érted a feladatot és valójában a leghosszabb növekvő sorozatot kellene megtalálnod.
2019. okt. 30. 12:15
Hasznos számodra ez a válasz?
2/15 A kérdező kommentje:
Az igaz kicsit furán írtam le a feladatot, de igaz, hogy az a feladat.
De az vágom, hogy maximumkiválasztás kéne, de hogyan? Azzal csak megtudom keresni a legnagyobb számot ami 8 és nem az kell
2019. okt. 30. 13:15
3/15 tabaki válasza:
Miért is? Nyilván nem a tömbelemek, hanem a folyamatos növekedések közül kell kiválasztanod a legnagyobbat. Amikor menet közben kiszámolod, ugyanúgy össze tudod hasonlítani őket az előző maximumként elmentett értékkel, mint ahogy bármiféle egyéb számsorozat esetén tennéd.
2019. okt. 30. 17:24
Hasznos számodra ez a válasz?
4/15 anonim válasza:
A "2 3 4 7 8" sorozat végig növekszik, úgyhogy teljesen rosszul értelmezed a feladatot.
2019. okt. 30. 18:18
Hasznos számodra ez a válasz?
5/15 anonim válasza:
Szóval akkor mi a feladat?
2019. okt. 30. 19:08
Hasznos számodra ez a válasz?
6/15 A kérdező kommentje:
A teljes feladat nem ez, csak ez az utolsó lépése, azt azért nem írtam le, mert az megvan.
Akkor a probléma/feladat az, hogy megkeresni a leghosszabb sorozatot, szóval a 2 3 4 7 8-nál a 2 3 4 a leghosszabb és nem pedig a 7 8 mert 4-2=2, 8-7=1 2>1.
2019. okt. 30. 20:27
7/15 anonim válasza:
Ok, továbbra is megoldható a feladat maximumkiválasztással.
2019. okt. 30. 20:47
Hasznos számodra ez a válasz?
8/15 tabaki válasza:
Nem vagyok képes értelmezni a problémádat. A 2-3-4 sorozat végére értél, az értéke 2, ezt nyilván eltároltad egy változóban, mint addigi leghosszabbat. Jön a 7-8 sorozat, az értéke 1. Összehasonlítod a leghosszabbal, erre kisül, hogy eggyel rövidebb, ezért tehát nem változtatsz annak értékén. Puff, vége a programnak, az első sorozat bizonyult a leghosszabbnak. De ha ezek után jön mondjuk a 10-11-12-13, hossza 3, akkor azt írod be az eddigi helyére. Föl nem foghatom, hogy ebben miféle különbséget látsz egyéb maximumkiválasztásokhoz képest.
2019. okt. 30. 22:04
Hasznos számodra ez a válasz?
9/15 anonim válasza:
Arról nem is beszélve, hogy ha folyamatos növekedés alatt azt érted, hogy egyesével növekednek az elemek, akkor teljesen fölösleges első meg utolsó elem közti különbséget számolgatni, ez kerek perec a sorozat hossza csökkentve eggyel. Tehát végső soron te a leghosszabb sorozatot, vagy annaka hosszát akarod megtalálni. Elindulsz szépen a tömb elejétől, és egy változóba jegyzed, hogy hány elemen keresztül nőtt fokozatosan a sorozat. Ha olyan elemre lépsz ami nem illik a sorozatba, akkor fogod, összehasonlítod a változód tartalmát az aktuális amximummal, ha nagyobb akkor felülírod, majd nullázod a változót, és folytatod tovább. a tömb végére érvén meglesz a leghosszabb sorozat. Ha pedig az kell, hogy pontosan mettől meddig terjed a elghosszabb sorozat, akkor a maximum érték mellett még letárolsz egy indexet is, ami az aktuális maximum első vagy utolsó indexét tárolja.
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!