retrait dossier sources recursivité
This commit is contained in:
@@ -1,38 +0,0 @@
|
||||
def multiplication_egyptienne(n: int, m: int) -> int:
|
||||
assert n>=1 and m>=1
|
||||
result = m
|
||||
if n > 1:
|
||||
if n % 2 == 0:
|
||||
result = multiplication_egyptienne(n//2, m*2)
|
||||
else:
|
||||
result = m + multiplication_egyptienne(n-1, m)
|
||||
return result
|
||||
|
||||
print(multiplication_egyptienne(7,5))
|
||||
|
||||
def multiplication_egyptienne2(n: int, m: int) -> int:
|
||||
assert n>=1 and m>=1
|
||||
if n == 1:
|
||||
return m
|
||||
elif n % 2 == 0:
|
||||
return multiplication_egyptienne(n//2, m*2)
|
||||
else:
|
||||
return m + multiplication_egyptienne(n-1, m)
|
||||
|
||||
print(multiplication_egyptienne2(7,5))
|
||||
|
||||
def multiplication_egyptienne_iterative(n: int, m: int) -> int:
|
||||
assert n > m
|
||||
assert n>=1 and m>=1
|
||||
result = 0
|
||||
while n > 1:
|
||||
if n % 2 != 0:
|
||||
result += m
|
||||
n = n-1
|
||||
else :
|
||||
n = n//2
|
||||
m = m*2
|
||||
result += m
|
||||
return result
|
||||
|
||||
print(multiplication_egyptienne_iterative(7,5))
|
||||
Reference in New Issue
Block a user