3099、哈沙德数

  1. 题目
    1. 示例 1:
    2. 示例 2:
    3. 计算各位数之和,判断是否可以整除

题目

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

示例 1:

输入: x = 18

输出: 9

解释:

x 各个数位上的数字之和为 9 。18 能被 9 整除。因此 18 是哈沙德数,答案是 9 。

示例 2:

输入: x = 23

输出: -1

解释:

x 各个数位上的数字之和为 5 。23 不能被 5 整除。因此 23 不是哈沙德数,答案是 -1 。

提示:

  • $1 <= x <= 100$

计算各位数之和,判断是否可以整除

class Solution {
    public int sumOfTheDigitsOfHarshadNumber(int x) {
        int res = 0;
        int t = x;
        while (t > 0) {
            res += t % 10;
            t = t / 10;
        }
        // x % res == 0 表示 x 是 res的整数倍。
        return x % res == 0 ? res : -1;
    }
}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1056615746@qq.com

💰

Title:3099、哈沙德数

Count:227

Author:攀登

Created At:2024-07-04, 11:16:50

Updated At:2024-07-04, 21:19:57

Url:http://jiafeimao-gjf.github.io/2024/07/04/3099%E3%80%81%E5%93%88%E6%B2%99%E5%BE%B7%E6%95%B0/

Copyright: 'Attribution-non-commercial-shared in the same way 4.0' Reprint please keep the original link and author.

×

Help us with donation