思路
模拟即可
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;
}
};
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;
}
}