如何判断一个数是否是哈沙德数(Harshad number)
创作时间:
作者:
@小白创作中心
如何判断一个数是否是哈沙德数(Harshad number)
引用
CSDN
1.
https://m.blog.csdn.net/Misnearch/article/details/140161943
问题描述
哈沙德数(Harshad number)是指一个数能够被其各位数字之和整除的数。例如,18是一个哈沙德数,因为18可以被1+8=9整除。
解题思路
要判断一个数是否是哈沙德数,可以按照以下步骤进行:
- 计算该数的各位数字之和
- 判断原数是否能被这个和整除
如果能整除,则该数是哈沙德数;否则不是。
代码实现
以下是使用C++、Python和Java三种语言实现的代码示例:
C++
class Solution {
public:
int sumOfTheDigitsOfHarshadNumber(int x) {
int sumnum = 0, temp = x;
while(temp){
sumnum += temp%10;
temp /= 10;
}
if (x%sumnum == 0) return sumnum;
else return -1;
}
};
另一种更简洁的C++实现:
class Solution {
public:
int sumOfTheDigitsOfHarshadNumber(int x) {
int s = 0;
// for循环代替while循环
for (int y = x; y; y /=10){
s += y%10;
}
// 三元运算符
return x%s ? -1 : s;
}
};
Python
Python中的三目运算符基本语法如下:value_if_true if condition else value_if_false
内置函数divmod()
函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
class Solution:
def sumOfTheDigitsOfHarshadNumber(self, x: int) -> int:
s = 0
y = x
while y:
y, r = divmod(y, 10)
s += r
return -1 if x % s else s
Java
class Solution {
public int sumOfTheDigitsOfHarshadNumber(int x) {
int s = 0;
for (int y = x; y != 0; y /= 10){
s += y % 10;
}
return x % s != 0 ? -1 : s;
}
}
热门推荐
中国男篮十大潜力新星,是未来冲击国际赛场关键
八极拳“哼哈二气”的减压密码:老祖宗的呼吸法,专治现代焦虑
掌握罗盘使用技巧,助你在户外探险中轻松导航与定位
怎样解决叛逆心理问题
贷款买房时如何查看个人征信,了解影响贷款的因素
深入探讨H股架构与VIE架构:中资企业出海的两条主要路径
宝宝多大可以吃水果?夏季水果副食品挑选,避开婴儿过敏水果!
民事案件可视化流程:让法律更加直观易懂
牙齿矫正保持器佩戴全攻略:饮食注意事项与佩戴时长指南
“寿比南山”的“南山”,是今天的什么地方?
寿岳说寿——寿比南山的历史渊源
怎么减少放屁?这些实用建议请收好
无毛猫吃什么猫粮好?记住这5点,不花冤枉钱!
如何养护无毛猫(以宠物为主,让你的无毛猫健康成长)
春天,使劲吃这果,一美白,二护眼,三强免疫,可惜很多人不懂吃
为什么气胸不建议手术了怎么办
客服响应时间如何缩短?如何用智能方案低成本&高效率提升客服响应效率?
如何在修订模式下修改论文(修订模式下修改论文的详细步骤解析)
牙齿松动要及时就医,早日治疗
流程文档:构建高效业务流程的详细指南
白炭黑与氢氧化钠 两种关键材料在化工领域的应用与作用
理解隐喻:通过实例揭示其含义与影响
一日三餐营养搭配的食谱
五大步骤构建网络安全防线,有效抵御恶意攻击
半夏厚朴汤功效配方是什么
燃油车也能玩转中高阶智驾?博世吴永桥这样说
养成6个表达习惯,你会成为一个有口才的人
王者荣耀:沟通,高端局与低端局的隐形分水岭
超声波检查出正中神经增粗代表什么
需要进行哪些检查来评估怀孕情况?