Hogy csináljam meg ezt a C# intervallumos feladatokat?
Sorsolj ki egy számot az [1000;10000] intervallumból. Írd ki, hogy a legkisebb számjegyét!
Sorsolj ki egy számot az [1000;10000] intervallumból. Írd ki, hogy a legnagyobb számjegyét!
A Random osztállyal sorsolsz, megadható az intervallum.
Stringgé alakítod, az első karaktert intté alakítva megvan a legkisebb változó értéke, és a legnagyobbé is. Végigmész egy ciklussal, ha kisebb az érték, akkor a legkisebb=aktualis, ha nagyobb, akkor legnagyobb=aktualis
Nem egy túl bonyolult feladat...
"Sorsolj ki egy számot az [1000;10000] intervallumból."
Ez eddig tiszta sor.
Random rnd = new Random();
int szam = rnd.Next(1000, 10000);
Console.WriteLine(szam);
"Írd ki, hogy a legkisebb számjegyét!"
De ez mi? Magának a mondatnak nincs értelme. Minek a legkisebb számjegyét? Honnan? Mihez képest?
Ezt sehogy, mert ennek az égvilágon semmi értelme.
Milyen nyelven és mi a búbanatot jelent szerinted az, hogy "Írd ki, hogy a legkisebb számjegyét!"?!
Utolsó voltam js-ben kb így:
console.log(Math.min(...(1000+Math.floor(Math.random()*9000)).toString().split('')));
console.log(Math.max(...(1000+Math.floor(Math.random()*9000)).toString().split('')));
kedves #5, én #1 voltam.
Azért [1000;10000] intervallumon kíváncsi lennék, mekkora lesz az a string. Szerintem maximum 5 karakter...
De ha 10 a 200-adik hatványon tárolnánk számot, akkor is 200 karakter nem a világ vége.
Egyébként meg te lóf....t sem mondtál, nem hogy kevésbé jó megoldást.
Nem a stringek hosszával van gond, hanem a darabszámával. Oké, jelenleg 1, de az is pár új objektum foglalás, GC-nek munka.
Egyébként a számjegyeket megkaphatjuk egy egyszerű ciklussal amiben veszük a szám 10-es maradékát, majd leosztjuk 10-zel (egész osztással nyilvan) Mindenzt addig ismételve amíg 0 nem lesz.
A random szám generálást pedig előttem már leírták, bár ha a feladat szövegének pontosan eleget akarunk tenni, akkor rnd.Next(1000, 10001);-t kéne írni, mert a felő korlát nem része a random által generált intervallumnak.
Amúgy pedig itt van egy nem hatékony megoldás:
1: new Random().Next(1000, 10001).ToString().Min(x => x)
2: new Random().Next(1000, 10001).ToString().Max(x => x)
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!