# 1780. 判断一个数字是否可以表示成三的幂的和

class Solution {
public:
bool checkPowersOfThree(int n) {
int flag = 16;
while (n) {
for (int i = flag - 1; i >= 0; i--) {
if (pow(3, i) <= n) {
n -= pow(3, i);
flag = i;
break;
}
}
if (flag == 0) break;
}
return n == 0;
}
};

复杂度分析:

  • 时间复杂度:$O (n)$
  • 空间复杂度:$O (1)$