这是我参与8月更文挑战的第23天,活动详情查看:8月更文挑战
相关文章
LeetCode刷题汇总:LeetCode刷题
一、题目描述
对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。
给定一个 整数 n, 如果是完美数,返回 true,否则返回 false
从简单题目开始刷,锻炼自己的思维能力,为面试准备~
二、思路分析
-
看看题目的示例,我们来理一理这个思路~
-
示例 1:
输入:28 输出:True 解释:28 = 1 + 2 + 4 + 7 + 14 1, 2, 4, 7, 和 14 是 28 的所有正因子。输入: [1,2,3,1] 输出: true
-
示例2:
输入:num = 6 输出:true
-
示例3:
输入:num = 496 输出:true
-
示例4:
输入:num = 8128 输出:true
-
示例5:
输入:num = 2 输出:false
-
这题目可以累加的思维来做。
-
首先判断该数值是否为1。为1直接返回false。
-
再找出所有的因数累加。
-
最后判断是否相等。
-
如果相等的话返回true,反之返回false。
三、AC 代码
-
累加破解法:
class Solution { public boolean checkPerfectNumber(int num) { if(num == 1) { return false; } int res = 1; for(int i = 2;i <= num / 2;i++){ if(num % i == 0){ res += i; } } if(res == num){ return true; } return false; } }
- 这种解法还是很nice的呀!
四、总结
**路漫漫其修远兮,吾必将上下求索~ **如果你认为i博主写的不错!写作不易,请点赞、关注、评论给博主一个鼓励吧~hahah