首页 > 其他分享 >力扣每日一题2022.12.9---1780. 判断一个数字是否可以表示成三的幂的和

力扣每日一题2022.12.9---1780. 判断一个数字是否可以表示成三的幂的和

时间:2022-12-09 11:57:06浏览次数:57  
标签:力扣 12 false 示例 1780 符合要求 --- return true

给你一个整数 n ,如果你可以将 n 表示成若干个不同的三的幂之和,请你返回 true ,否则请返回 false 。
对于一个整数 y ,如果存在整数 x 满足 y == 3x ,我们称这个整数 y 是三的幂。

示例 1:
输入:n = 12
输出:true
解释:12 = 31 + 32

示例 2:
输入:n = 91
输出:true
解释:91 = 30 + 32 + 34


示例 3:
输入:n = 21
输出:false
提示:
    1 <= n <= 107
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/check-if-number-is-a-sum-of-powers-of-three
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

经观察,可以发现如果一个数符合要求,则这个数可以被写作如下格式:

(3^0) + 3 * {(3^0) + 3*[......]};   注:(3^0) 可以删去。

列如:12 = 3^0 + 3 * (3^0 + 3 * (3^0));符合要求

 39 = 3 * ( 3^0 + 3 * (3^0 + 3 * (3^0 + 3 * (3^0))));符合要求

也就是说,如果一个数n符合要求,那么这个数要么是3的倍数,要么减去1之后是3的倍数,n 对3进行整除,并重新经过该判断,循环往复,经过有限次后,n必定变成0;

如果在中间的某一步n不符合要么是3的倍数,要么减去1之后是3的倍数这个判断,那么这个数不符合题意,直接返回false;

代码如下:

 

 1 class Solution {
 2     public boolean checkPowersOfThree(int n) {
 3         if (n != 0) {
 4             int tem = n % 3;
 5             if (tem == 1 || tem == 0) {
 6                 n = n / 3;
 7                 return checkPowersOfThree(n);
 8             } else {
 9                 return false;
10             }
11         } else {
12             return true;
13         }
14     }
15 }

标签:力扣,12,false,示例,1780,符合要求,---,return,true
From: https://www.cnblogs.com/allWu/p/16968516.html

相关文章

  • Excel VB-合并多个sheet
    Sub合并当前工作簿下的所有工作表()Application.ScreenUpdating=FalseForj=1ToSheets.CountIfSheets(j).Name<>ActiveSheet.NameThenX=Range("A6553......
  • Debug - 某个方法一直报NPE错,无论怎么加防御式编程、try catch均无效
    问题描述  最初的错误是,在fane-lib-java包里,出现了NPE异常。我的应用程序,引用了一个fane-lib-java包。lib包中的fane-core和fane-data-sdk-plus两个module.由于......
  • 图像处理技术-变形变换-制作手提袋
    实现步骤:1.搜集手提袋相关素材和背景素材。2.新建文件1920px*1080px,CMYK模式、分辨率:100像素/英寸,命名为“绘制手提袋”并保存。3.打开背景素材,使用移动工具将其置入“......
  • 论文阅读:Zeno: Distributed Stochastic Gradient Descent with Suspicion-based Fault
    论文链接:http://proceedings.mlr.press/v97/xie19b/xie19b.pdf基于怀疑容错的分布式SGDAbstactzeno优势在于只需要假设系统中存在一个正常节点。核心思想:怀疑有潜在缺......
  • MBR30200FCT-ASEMI肖特基二极管MBR30200FCT
    编辑:llMBR30200FCT-ASEMI肖特基二极管MBR30200FCT型号:MBR30200FCT品牌:ASEMI封装:TO-220F正向电流:30A反向电压:200V引线数量:3芯片个数:2芯片尺寸:122MIL漏电流:10ua恢......
  • itop3588开发板编译Linux源码包-修改成mipi显示
    打开​​Linux​​源码kernel/arch/arm64/boot/dts/rockchip/rk3588-evb7-lp4.dtsi中的设备树文件。如下图所示默认包含的头文件即是mipi显示:更多内容可以了解迅为35......
  • 【2022-12-06】可口可乐
    20:00人生值得一过,活着就是胜利。                                          ......
  • 【2022-12-05】想奶奶了
    20:00我是我的世界,因此,若世界让我不快乐,唯一对此有决定意义的做法是改变我自己。                           ......
  • 源码浅析--整体架构
    最近一直在研读jQuery源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美。其结构明晰,高内聚、低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼......
  • MBR10100FCT-ASEMI低压降插件肖特基二极管
    编辑:llMBR10100FCT-ASEMI低压降插件肖特基二极管型号:MBR10100FCT品牌:ASEMI封装:TO-220F特性:插件肖特基二极管正向电流:10A反向耐压:100V恢复时间:5ns引脚数量:3芯片个数:2芯片尺寸......