Java 如何检查一个数字是否是Harshad数
Harshad数可以定义为一个可以被其数字之和整除的数。简单来说,如果一个数字的数字之和是这个数字的因子,则它是一个Harshad数。
在本文中,我们将看到如何使用Java编程语言来检查Harshad数。
一些示例
示例1
输入数字为18
让我们使用Harshad数的逻辑来检查它:
数字的数字之和=1 + 8 = 9。
所以,18可以被9整除。
因此,18是一个Harshad数。
示例2
输入数字为3
让我们使用Harshad数的逻辑来检查它:
数字的数字之和=3。
所以,3可以被3整除。
因此,3是一个Harshad数。
示例3
输入数字为15
让我们使用Harshad数的逻辑来检查它:
数字的数字之和=1 + 5 = 6。
所以,15不能被6整除。
因此,15不是一个Harshad数。
一些其他的Harshad数的示例包括1,2,4,5,6,7,8,9,10,12,18,20等。
语法
将整数值转换为字符串值,使用内置的 toString() 方法。
以下是通过将整数值转换为字符串值,然后找到其长度并将长度赋值给整数变量来获取数字中的总位数的语法:
String str = Integer.toString(input_number);
要获取整数的长度,我们将使用Java String类内置的 length() 方法,该方法返回字符串对象的长度。
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 - 然后检查原始数字是否可被数字的所有数字的总和整除。如果可被整除,给定的数字是一个Harshad数,否则不是Harshad数。
多种方法
我们提供了不同的方法来解决问题
- 不使用字符串
-
使用字符串
让我们逐个查看程序及其输出。
方法1:不使用字符串
在这种方法中,程序将初始化整数值,然后使用 算法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:使用字符串
在这种方法中,程序将初始化一个整数值,然后使用算法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数。