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数
第 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 数字。
【本文来自:美国大带宽服务器 http://www.558idc.com/mg.html提供,感恩】