如何在Java中检查一个数字是否为Harshad数?

2023年 9月 25日 36.8k 0

如何在Java中检查一个数字是否为Harshad数?

Harshad数可以被其数字之和整除。简单来说,如果一个数的所有数字之和是该数的因子,那么它就是一个Harshad数。

在本文中,我们将看到如何使用Java编程语言来检查Harshad数。

向您展示一些实例

实例1

输入数字为18

让我们使用Harshad数的逻辑来检查它−

数字的各位数字之和 = 1 + 8 = 9。

所以,18可以被9整除。

因此,18是一个Harshad数。

Instance-2

的翻译为:

实例-2

输入的数字是3

让我们使用Harshad数的逻辑来检查它−

数字的各位数之和 = 3。

所以,3可以被3整除。

因此,3 是哈沙德数。

Instance-3

的中文翻译为:

实例-3

输入数字为15

让我们使用Harshad数的逻辑来检查它−

数字的各位数字之和 = 1 + 5 = 6。

所以,15 不能被 6 整除。

因此,14 不是哈沙德数。

一些其他的哈尔沙德数的例子包括 1、2、4、5、6、7、8、9、10、12、18、20 等。

语法

使用内置的 toString()方法将整数值转换为字符串值。

以下是将整数值转换为字符串值,然后找到其长度并将长度赋值给整数变量以获取数字中总位数的语法 -

String str = Integer.toString(input_number);

登录后复制

要获取整数的长度,我们将使用Java String类内置的length()方法
方法返回 String 对象的长度。

int length = st.length();

登录后复制

要获取字符串中特定位置/索引处的字符,我们使用 charAt() 方法。其中 charAt(i)-‘0’ 返回实际的整数值。

int num = st.charAt(i)-‘0’;

登录后复制

其中“st”指的是字符串,“i”是迭代该字符串的迭代器变量。

算法

算法1

  • 第 1 步 - 通过初始化或用户输入获取整数。

  • 第 2 步 - 通过迭代数字的每个数字,找到数字的每个数字的总和。

  • 步骤3 - 然后检查原始数字是否可被数字的所有位数之和整除。如果可被整除,则给定的数字是一个Harshad数,否则不是一个Harshad数

算法2

  • 第 1 步 - 通过初始化或用户输入获取整数。

  • 第 2 步 - 使用内置的 toString() 方法将该整数转换为字符串。

  • 步骤 3 - 通过使用内置的 length() 方法找到字符串的长度。

  • 步骤 4 - 然后通过使用 for 循环,迭代直到字符串的长度,并使用 charAt(i)-' 从字符串中获取一一整数值0' 并记录所有数字的总和。

  • 步骤 5 - 然后检查原始数字是否可以被该数字所有数字的总和整除。如果可整除,则给定的数字是哈沙德数,否则不是哈沙德数。

多种方法

我们提供了不同方法的解决方案

  • 不使用字符串

  • 通过使用字符串

让我们一一看看该程序及其输出。

方法 1:不使用字符串

在这种方法中,程序中将初始化一个整数值,然后通过使用Algorithm-1我们可以检查一个数是否是Harshad数。

示例

public class Main{
//main method
public static void main(String args[]){

//Declared an integer variable and initialized a number as value
int originalNumber = 21;

//printing the given number to be checked
System.out.println("Given number: "+originalNumber);

//keep a copy of original number
int copyOfOriginalNumber = originalNumber;

//initialize sum as 0
int sum = 0;

//Find sum of all digits of the number
//continue the loop till the number is greater than 0
while(originalNumber > 0){

//get the rightmost digit of the number by using % operator
int rem = originalNumber%10;

//add the digit(rem) to sum
sum = sum + rem;

//remove the rightmost digit from number and get the updated number
originalNumber = originalNumber/10;
}

//printing the result
if(copyOfOriginalNumber % sum == 0)
System.out.println(copyOfOriginalNumber+" is a Harshadnumber");
else
System.out.println(copyOfOriginalNumber+" is not a Harshadnumber");
}
}

登录后复制

输出

Given number: 21
21 is a Harshad number

登录后复制

方法 2:使用字符串

在这种方法中,将在程序中初始化一个整数值,然后使用 Algorithm-2 我们将检查该数字是否为 Harshad 数字。

示例

public class Main{
//main method
public static void main(String args[]){

//Declared an integer variable and initialized a number as value
int originalNumber = 40;

//printing the given number to be checked
System.out.println("Given number: "+originalNumber);

//keep a copy of original number
int copyOfOriginalNumber = originalNumber;

//initialize sum as 0
int sum = 0;

//convert the integer to string by using toString() method
String str = Integer.toString(originalNumber);

//find length of String by using length() method
//which is nothing but total number of digits in the given number
int length=str.length();

//iterate the String and get the digits by using charAt(i)-'0'
//find the sum of digits
for(int i = 0; i < length; i++){
sum += str.charAt(i)-'0';
}

//printing the result
if(copyOfOriginalNumber % sum == 0)
System.out.println(copyOfOriginalNumber+" is a Harshad number");
else
System.out.println(copyOfOriginalNumber+" is not a Harshad number");
}
}

登录后复制

输出

Given number: 40
40 is a Harshad number

登录后复制

在本文中,我们探讨了如何使用不同的方法在 Java 中检查一个数字是否为 Harshad 数字。

以上就是如何在Java中检查一个数字是否为Harshad数?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论