Python递归实现快速幂算法
快速幂算法是指将一个数的幂次表示为指数为2的幂次的和,可以通过递归实现。
具体地,设要求x的n次幂,首先计算x的n/2次幂,然后如果n是偶数,x的n次幂就是x的n/2次幂的平方,如果n是奇数,则是x的n/2次幂的平方乘以x。
以下是使用Python递归实现快速幂算法的代码:
def fast_pow(x, n):
if n == 0:
return 1
if n % 2 == 0:
y = fast_pow(x, n/2)
return y * y
else:
y = fast_pow(x, (n-1)/2)
return y * y * x
例子1:计算2的10次幂
print(fast_pow(2, 10))
例子2:计算2的100次幂
print(fast_pow(2, 100))
例子3:计算字符串“pidancode.com”的10次方
print(fast_pow("pidancode.com", 10))
例子4:计算字符串“皮蛋编程”的5次方
print(fast_pow("皮蛋编程", 5))
输出结果如下:
1024
1267650600228229401496703205376
pidancode.compidancode.compidancode.compidancode.compidancode.compidancode.compidancode.compidancode.compidancode.compidancode.com
皮蛋编程皮蛋编程皮蛋编程皮蛋编程皮蛋编程
相关文章