如何判断一个数是否是哈沙德数(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;
}
}
热门推荐
氯气泄露事故处置程序与应急响应
杨钰莹:我这辈子不后悔的事情,就是曾与赖文峰相爱过
柳叶刀:不手术化疗,77%患者无癌4年!免疫治疗重塑癌症格局
在意大利续办学生居留攻略2024最新版
CUDA统一内存:简化GPU编程的内存管理
数据共享助力“三医”协同
铝箔胶带在不同频率下的电磁屏蔽效能分析
压力真的会影响共情吗?中科院研究揭示有趣发现
三角形外心:几何图形中的中心点
古代名将霍去病的军事才能,为何能让他屡战屡胜
水的五种状态:从未饱和水到过热蒸汽
立案申请书下载实务指南:格式、流程与法律效力全解析
如何使用万用表测量电容的详细步骤与注意事项解析
中国石油辽河油田攻克分布式光伏数据采集传输技术难题
牙科局部麻醉:基础知识和优点
从零开始打造理想电竞房:高效设备到舒适布局的全攻略
如何学习Web前端系统开发
老公经常喝酒我该怎么和他沟通
美指下降对期货市场有什么影响?如何应对美指波动?
激光矫正视力手术可能带来的五大风险
2025年棉花行业发展趋势分析:中国棉花市场单产144.8公斤/亩
爱情哲学的10个流派
手指腱鞘炎用什么药比较好
APP消息推送如何优化以提升用户体验?
糖尿病高渗状态与酮症酸中毒的区别是什么
2024年未来出行趋势调研:中国消费者对汽车新技术的接纳程度最高
探析赡养义务的法律性质及实践问题
光猫和路由器都是亮的没有网络?这样排查故障
股票增资扩股是什么?股票增发新股与增资扩股有何区别?
山药和什么熬粥最养胃?山药养胃粥:探寻最佳搭配食材