LeetCode. 3099. 哈沙德数

79 阅读1分钟

题目

如果一个整数能够被其各个数位上的数字之和整除,则称之为 哈沙德数(Harshad number)。给你一个整数 x 。如果 x 是 哈沙德数 ,则返回 **x 各个数位上的数字之和,否则,返回 **-1 。

思路

转换成 String 后.逐位相加

注意: 字符要 - '0' 才可以

代码

class Solution {
    public int sumOfTheDigitsOfHarshadNumber(int x) {
        String xValue = String.valueOf(x);
        int n = xValue.length();
        int sum = 0;
        for (int i = 0; i < n; i++) {
            char c = xValue.charAt(i);
            sum += (int) (c - '0');
        }
        return x % sum == 0 ? sum : -1;
    }
}

题解

灵神题解: leetcode.cn/problems/ha…