def licz(x):
# Jeżeli x = 1, podaj wynik 1
if x == 1:
return 1
else:
# w <- licz(x div 2)
# Operator // oznacza dzielenie całkowite (bez reszty)
w = licz(x // 2)
# Jeżeli x mod 2 = 1 (czyli x jest nieparzyste)
if x % 2 == 1:
return w + 1
# W przeciwnym przypadku (x jest parzyste)
else:
return w - 1
# Przykładowe wywołanie funkcji, aby sprawdzić działanie:
wynik = licz(105) # Dla przykładu 13
print(f"Wynik dla 13: {wynik}")
ZGVmIGxpY3ooeCk6CiAgICAjIEplxbxlbGkgeCA9IDEsIHBvZGFqIHd5bmlrIDEKICAgIGlmIHggPT0gMToKICAgICAgICByZXR1cm4gMQogICAgZWxzZToKICAgICAgICAjIHcgPC0gbGljeih4IGRpdiAyKQogICAgICAgICMgT3BlcmF0b3IgLy8gb3puYWN6YSBkemllbGVuaWUgY2HFgmtvd2l0ZSAoYmV6IHJlc3p0eSkKICAgICAgICB3ID0gbGljeih4IC8vIDIpCiAgICAgICAgCiAgICAgICAgIyBKZcW8ZWxpIHggbW9kIDIgPSAxIChjenlsaSB4IGplc3QgbmllcGFyenlzdGUpCiAgICAgICAgaWYgeCAlIDIgPT0gMToKICAgICAgICAgICAgcmV0dXJuIHcgKyAxCiAgICAgICAgIyBXIHByemVjaXdueW0gcHJ6eXBhZGt1ICh4IGplc3QgcGFyenlzdGUpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHcgLSAxCgojIFByenlrxYJhZG93ZSB3eXdvxYJhbmllIGZ1bmtjamksIGFieSBzcHJhd2R6acSHIGR6aWHFgmFuaWU6Cnd5bmlrID0gbGljeigxMDUpICMgRGxhIHByenlrxYJhZHUgMTMKcHJpbnQoZiJXeW5payBkbGEgMTM6IHt3eW5pa30iKQ==