运营网站开发工作招聘,农博园网站建设投标书,申请网站怎样申请,互联网推广的方式一、前言 本系列主要讲解和分析力扣习题#xff0c;所以的习题均来自于力扣官网题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台
二、哈沙德数
1. 哈沙德数
如果一个整数能够被其各个数位上的数字之和整除#xff0c;则称之为 哈沙德数#xff08;Harshad number所以的习题均来自于力扣官网题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台
二、哈沙德数
1. 哈沙德数
如果一个整数能够被其各个数位上的数字之和整除则称之为 哈沙德数Harshad number。给你一个整数 x 如果 x 是 哈沙德数 则返回 x 各个数位上的数字之和否则返回 -1 。
示例 1
输入 x 18
输出 9
解释
x 各个数位上的数字之和为 9 。18 能被 9 整除。因此 18 是哈沙德数答案是 9 。
示例 2
输入 x 23
输出 -1
解释
x 各个数位上的数字之和为 5 。23 不能被 5 整除。因此 23 不是哈沙德数答案是 -1 。
提示 1 x 100
2. 思路及算法
考虑到所给的数x并不大可以直接采用暴力算法。
优先考虑1和100的情况再计算 x 的数位之和 t判断 x 是否能被 st整除若能则是哈沙德数返回 t否则返回 −1
int sumOfTheDigitsOfHarshadNumber(int x) {if(x 1 || x100){ return 1;}int a,b,t;a x % 10;b x /10;t ab;if(x % t 0){return t;}else{return -1;}
}
结果分析 3. 复杂度分析 时间复杂度O(logx)。 空间复杂度O(1)。