2016-07-25 5 views
0

Мне не хватает чего-то знатного здесь.
Ниже функции работает flawlessly.It проверяет значение "б" для нечетных или даже с помощью
экспрессии (б% 2) * 2 == б, затем поднимает "а" к власти "B".
Я проверил это выражение на несколько значений для «b».
Это либо 0, либо 1 в зависимости от четного или нечетного соответственно.
Я не могу найти номер, для которого (b% 2) * 2 == b - это правда.
Но код все же отлично работает.
Может ли кто-нибудь очистить мое замешательство?проверка нечетного и четного числа для возведения в степень

def expo(a,b): # a to the power b 
if b == 1: 
    return a 
if (b%2)*2 == b:#checking even or odd 
    return expo(a*a, b/2) 
else: return a*expo(a,b-1) 
x=expo(8,2) 
print x 
x=expo(8,3)  
print x 

благодаря PKJ

ответ

0

Действительно жаль никто не ответил. Я не знаю, как я оказался здесь, но ваша четная проверка числа просто неверна.

То, что вы хотите сделать, это:

b % 2 == 0 

Если это правда, это даже. Если false, это странно.