Hogy lehetne ezt a feladatot megoldani? C#
Meg kell keresni egy számnál az első olyan nagyobb számot, amelyben az egymást követő számjegyek vagy egyenlőek, vagy nagyobbak, mint az előző.
Pl. a 39 után az első ilyen a 44, mivel a 40,41,42,43-ban a második számjegy kisebb mint az előző. Vagy a 346713 után az első ilyen a 346777.
Csinálsz egy while ciklust, amivel elkezded növelni a "39" értékét.
(int num = 39; num++)
Ezen belül lesz egymásik while, amiben feldarabolot és beteszed egy listába a számodat.
Ennek kulcs sora: listOfInts.Add(num % 10);
A lista elemeit pedig összehasonlítod.
Azt kihagytam, hogy néhány kulcsszó nem használható a megoldás során: ArrayList, List, SortedList, Dictionary, Stack, Queue, Hastable, a var az object és a dynamic valamint a goto, continue és break és maga a LINQ sem.
Nem várok el konkrét megoldást senkitől, csak valamilyen elindító gondolatban reményekedek. :)
Tudjuk, hogy kész megoldást vársz, hát tessék:
Hogy még kókányabb legyen:
Nem vártam kész megoldást. :)
Végül nekiültem és megcsináltam sima tömbbel. :)
De nem a mindig eggyel növelős módszerrel, mert egy 18 számjegyű számnál az jó hosszú futási időt eredményezne, hanem a számjegyeket hasonlítottam össze. :D
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!