def 求解(某数): #既然给定是整数,那么就不会是负数次方
基数 = 1 #3的0次方
while 某数 > 基数:#穷举法搜寻,理论上不可能漏掉,就是效率可能低点
基数 *= 3 #指数加一
return (某数 == 基数)
if __name__ == '__main__':
print('例1 输出:', 求解(27))
print('例2 输出:', 求解(0))
print('例3 输出:', 求解(9))
print('例4 输出:', 求解(45))
脑海中第一时间闪过的念头,升级,包含负数次方的版本如下:def 高级求解(某数):
基数 = 1 #3的0次方
if 0 < 某数 < 1: #负数次方为分数,倒数即为正次幂
某数 = 1/ 某数
while 某数 > 基数:#穷举法搜寻,理论上不可能漏掉,就是效率可能低点
基数 *= 3 #指数加一
return (某数 == 基数)
if __name__ == '__main__':
print('例1 输出:', 高级求解(27))
print('例2 输出:', 高级求解(0))
print('例3 输出:', 高级求解(9))
print('例4 输出:', 高级求解(45))
print('自测 输出:', 高级求解(1/(3**8)))
|