.编写程序,给定一个整数,写出一个递归函数来判断它是否是3的幂次方。
时间: 2024-11-09 15:30:16 浏览: 22
Python入门程序 函数应用(判断素数、递归求n的阶乘、x的n次方、最大最小值、插入排序法)
5星 · 资源好评率100%
要编写一个递归函数来判断一个整数是否是3的幂次方,我们首先需要理解3的幂次的特点。3的幂次(例如3^0, 3^1, 3^2, ...)只能是0、1、2的倍数,因为任何其他奇数指数都会得到一个奇数,而3除以奇数必然余1,因此不可能得出3的幂次。所以我们可以创建一个递归函数,检查这个数是否可以表示成2乘以某个3的幂次方加上1或者减去1(即2^(k-1)*3或者2^(k-1)*3 + 2的形式),若可以,则说明它是3的幂次方。
以下是使用Python编写的递归函数示例:
```python
def is_three_power_of_two(n):
# 基线条件:0和1本身就是3的幂次方(1 = 3^0)
if n == 0 or n == 1:
return True
# 如果n能被3整除,并且商也是3的幂次方(即n = 3^(k+1))
elif n % 3 == 0 and is_three_power_of_two(n // 3):
return True
# 否则,n不是3的幂次方
else:
return False
# 测试函数
number = int(input("请输入一个整数:"))
if is_three_power_of_two(number):
print(f"{number}是3的幂次方")
else:
print(f"{number}不是3的幂次方")
阅读全文