Hogy lenne érdemes megcsinálni ezt a feladatot?
Adott egy szám N.
1 <= N <= 10^9.
Két műveletet végezhetünk ezen a számon:
- szorzás 2-vel
- osztás 6-tal
Az a kérdés, hogy minimum hány lépésből csökkenthetjük 1-re a számot.
Ha nem lehetséges, akkor -1 legyen az eredmény.
Ezt valami backtracking megközelítéssel kéne megoldani?
Ha igen, akkor mikor kell megállni pl. a 2-vel való szorzásnál, hogy ne fussak túlcsordulásba de mégis eljussak az eredményhez?
> megszámolod hány 3-ast kaptál és hány 2-est.
> pl:2916 2 2 3 3 3 3 3 3 (x db 2-es és y db 3-as) akkor y*2-x lépés.
Ellenpélda: 12 = 2*2*3
Formula alapján: 2 db 2-es és 1 db 3-as, 1*2-2 = 0 lépés.
Lépések: ???
jogos. a végére csak összejön az összes feltétel :)
(de amúgy ki is javíthattad volna a feltételt :D)
+ feltétel: y>=x
erre nem találok most ellenpéldát.
Ez egy általános iskolai szintű feladat, úgy emlékszem ott tanították, hogy egy szám akkor osztható 6-tal, ha 2-vel és 3-mal is osztható.
#13 #14
Az hogy osztható 6-al még nem oldja meg az eredeti kérdést.
Pl a 81-re is van megoldás, pedig nem osztható 6-al, mivel nem osztható 2-vel.
Szóval a prímtényezős felbontást nem úszod meg.
#18 nem kötekedésből, de nem megoldás az eredeti problémára :) a #15-ösben kifejtettem miért.
Azt pedig hogy osztható-e 6-al nem olyan nehéz megvizsgálni, sok nyelvben az alábbi szintaktika működik:
if(n % 6 === 0) { osztható } else { nem osztható (maradék nélkül) }
de ugye nem ez a kérdés. na mindegy :) ha szerinted az a jó megoldás, ám legyen.
Nem értem.
Kipróbáltam 13-as megoldását és minden értékre jó eredményt ad.
Akkor hogyhogy nem megoldás?
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!