Java+parancssori argumentummal, h lehetne ezt megcsinálni?
Írj programot, ami egész számok sorozatát olvassa be parancssori argumentumból, majd meghatározza, hogy melyik a leghosszabb olyan részsorozata, ahol az egymás utáni elemek ugyanannak a számnak a hatványai (a, a2, a3, ...)
Odáig megvan, h a cmd-be beírt számok, amiket Stringnek kezel, int-et csinálok belőle.
Tehát "egész számok sorozatát olvassa be parancssori argumentumból" ez megvan.
"majd meghatározza, hogy melyik a leghosszabb olyan részsorozata, ahol az egymás utáni elemek ugyanannak a számnak a hatványai (a, a2, a3, ...)"
Ezt nem tudom megcsinálni.
Légyszi segítsen, ha tudja valaki. Köszi :)
Az, h hogyan kell lekódolni, h
"majd meghatározza, hogy melyik a leghosszabb olyan részsorozata, ahol az egymás utáni elemek ugyanannak a számnak a hatványai (a, a2, a3, ...)"
Oltós szövegeket, h óvodás feladat, csecsemű megírja csukott szemmel, meg pusztuljak el, h nem jövök rá stb. inkább privát üzenetbe írja le aki akarja, h itt inkább a hasznos infók legyenek.
Két egymásba ágyazott ciklussal.
Először csinálsz egy eredmény listát.
A külső for ciklussal lépkedsz végig a beolvasott elemeken.
Beállítod, hogy a = az i. beolvasott elem.
Ezt beteszed egy új részlistába.
Utána csinálsz egy belső ciklust, ahol az i+1. elemtől indulsz.
És ellenőrzöd, hogy i+1. elem == a*a
i+2. elem = a*a*a
Ha igaz, akkor beteszed a részlistába a következő elemet.
Addig csinálod, míg olyan elemhez nem érsz, amire ez már nem igaz, vagy elfogytak az elemek.
Ekkor megnézed, hogy hány elemet tettél be, ha többet, mint az eddigi legtöbb, akkor az lesz az új eredmény.
(Amit a cikluson kívül definiáltál)
Ha ennél több segítség kell, akkor írj.
Eddig megvan.
Csak úgy kéne, hogy folyamatosan magától emelje az a-t, tehát ne keljen elöre beirni hogy a*a utána a*a*a.
Ezt, h lehetne?
En ugy csinalnam, hogy eloszor megnezem a lista elso elemere, hogy tole kezdodoen mekkora a leghosszabb ilyen sorozat, aztan ha n hosszu, akkor az n. elemtol folytatodoan megneznem, hogy tole mekkora a leghosszabb ilyen. Valahogy igy, ez vagy mukodik, vagy nem, es biztos lehetne szebben is csinalni.
public static void main(String[] args) {
List<Integer> integerList = Arrays.asList(args).stream().map(Integer::valueOf).collect(Collectors.toList());
int result = 1;
while (integerList.size() > 1) {
int exponent = 2;
while (integerList.size() >= exponent && pow(integerList.get(0), exponent) == integerList.get(exponent - 1)) {
if (exponent > result) {
result = exponent;
}
++exponent;
}
for (int i = 0; i < exponent - 1; ++i) {
integerList.remove(0);
}
}
System.out.println(result);
}
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!