如何判断一个数是否是哈沙德数(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;
}
}
热门推荐
宫本武藏VS佐佐木小次郎:一场改变日本剑术史的巅峰对决
朱令案最新进展:最高检介入调查,案件真相能否水落石出?
清华大学悼念朱令,案件真相仍待揭晓
玉化油和上色油的区别:文玩核桃保养指南
动物界万众“异类”:世界双头动物盘点
70年代恐怖片黄金时代:十大经典奠定类型片基石
肺结核皮试:90%准确率,免疫抑制患者需谨慎
肺结核皮试解读:硬结直径标准及临床意义
肺结核皮试结果解读:从5毫米到20毫米的医学意义
肺结核皮试结果解读:准确率不高,需综合诊断
国家收紧甲醛标准,专家支招家居污染防治
甲醛释放量达国际最高标准,E0级板材成家居首选
新房装修防甲醛:选材标准与治理技术全解析
新房除甲醛:专业检测与四大治理方案详解
龙血果茶:心血管健康的有益补充
手机密码忘了怎么办?15个实用解决方案
盐水煮饺子更筋道,桂皮水烫虾更鲜美:8个实用生活技巧
进入“安全与隐私”:三步完成手机密码更换
如何设置手机密码?两大系统详细教程+安全建议
西安长安通老年卡补办全攻略:线上办理更便捷
提升自信与气质的变帅实用技巧与方法探讨
北京至唐山自驾游:京哈高速与京津塘高速路线对比
北京南站至唐山高铁购票指南:多渠道选择,Trip.com有优惠
京哈还是京津塘?北京到唐山自驾路线全攻略
2024秋冬彩妆流行趋势后台直击!来自专业人士的技巧解析
石家庄十大百年美食:古栾绿豆煎饼领衔
<坦克大战>:南梦宫街机游戏的FC巅峰与本土化之路
EA888和EA211发动机有什么不同?
统治了日本两百多年的德川家康一族,后裔四大分支的现状怎样了?
《孙子兵法》在现代战争与商战中的创新应用