Üs alma işlemi problemlerine farklı bir yaklaşım sunan bu problemde, çarpma(*) ve bölme(/) işlemi kullanmadan üs alma işlemine bakacağız.

Örneğin;

5^6 işlemi için;
result = 0
1.) 5 kere 5 ekle (5^2) = 25
2.) 5 kere 25 ekle (5^3) = 125
3.) 5 kere 125 ekle (5^4) = 625
4.) 5 kere 625 ekle (5^5) = 3125
5.) 5 kere 3125 ekle (5^6) = 15625

İç içe döngü kullanarak

def nested_pow(a, b):
    if b == 0:
        return 1
    result, increment = a, a
    for i in range(1, b):
        for j in range(1, a):
            result += increment
        increment = result
    return result

Recursive çözüm

def recursion_pow(a, b):
    if b != 0:
        return multiply(a, recursion_pow(a, b - 1))
    else:
        return 1


def multiply(x, y):
    if y != 0:
        return x + multiply(x, y - 1)
    else:
        return 0
if __name__ == '__main__':
    print(nested_pow(5, 6))
    print(recursion_pow(5, 3))

Comments

comments powered by Disqus