题目:
解析:
一句话:尽量分解成多个“3”相乘,因为对于大于3的数,均可以用3和2替代(4特殊处理即可)。
代码:
def solution(n):
if n <= 4:
return n
else:
res = 1
while n // 3 > 0 :
if n % 3 == 0: # 判断是否可以整除3,如果可以,直接*3
res *= 3
n -= 3
else:
res *= 2
n -= 2
return res
x = solution(21)
print(x)
输出:2187(和7个3相乘,结果相同)
难易程度:简单