📅  最后修改于: 2023-12-03 15:10:52.349000             🧑  作者: Mango
鸭号是指形如“5的n次方”(其中n是正整数)的数字,例如5、25、125等等。检查一个数字是否为鸭号可以使用以下代码:
def is_duck_number(num):
n = int(num ** 0.2)
return num == 5 ** n * 10 ** (len(str(num)) - len(str(5 ** n)))
该函数接受一个整数参数num,先用0.2次方计算n的值,然后用5的n次方乘以10的(num的位数-n的位数)次方,得到一个数duck_num。如果duck_num等于num,则num是鸭号。函数返回True或False。
下面是一个使用示例:
num = 78125
if is_duck_number(num):
print(f"{num}是鸭号")
else:
print(f"{num}不是鸭号")
输出结果为:
78125是鸭号
该方法的时间复杂度为log(N),在检查数据较大的情况下效率较高。