Keresés

Keresendő kifejezés:

Toplista

Toplista
  • betöltés...

Segítség!

Ahhoz, hogy mások kérdéseit és válaszait megtekinthesd, nem kell beregisztrálnod, azonban saját kérdés kiírásához ez szükséges!

Pyton feladat

143
A feladatok a következők:

1-> Írd ki annak a sorozatnak a 15. elemét, amelyet úgy kapsz meg, hogy minden következő elemet
az előző szám számjegyeinek kétszereséből állítod elő! (1, 2, 4, 8, 16, 212, 424, 848, 16816)

2-> Add meg egy bekért egész szám számjegyeinek összegét! A feladatot addig folytassuk, amíg
egyetlen számjegyet nem kapunk! (Pl: 47689 → 4+7+6+8+9 = 34 → 3+4 = 7)
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Középiskola / Informatika

Válaszok

3
Egy lehetséges megoldás.
1

Szia. Én így oldottam meg: https://www.online-python.com/nmY4hb0ZPw
1

Én úgy vettem észre, hogy a számjegyekkel zsonglőrködő házi feladatok esetében nem karakterlánccá alakítós megoldásokat várnak. Ezért itt van egy megoldás str() és int() nélkül. És hogy ne ismételjem a korábbi megoldásokat, ez legyen rekurzív.

# 1

def sorozat(sorszam):
    if sorszam == 1:
        return 1

    elozo = sorozat(sorszam - 1)

    szam = 0
    hely = 0
    while elozo:
        szamjegy = elozo % 10 * 2
        szam += szamjegy * 10 ** hely
        hely += 1 + (szamjegy >= 10)
        elozo //= 10

    return szam

print(sorozat(15))

# 2

def apasztas(szam):
    if szam < 10:
        return szam

    osszeg = 0
    while szam:
        osszeg += szam % 10
        szam //= 10

    return apasztas(osszeg)

print(apasztas(int(input('Szám: '))))
Módosítva: 3 hete
1