当前位置 : 主页 > 编程语言 > java >

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

来源:互联网 收集:自由互联 发布时间:2023-12-27
Harshad数可以被其数字之和整除。简单来说,如果一个数的所有数字之和是该数的因子,那么它就是一个Harshad数。 在本文中,我们将看到如何使用Java编程语言来检查Harshad数。 向您展示

如何在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 数字。

【本文来自:美国大带宽服务器 http://www.558idc.com/mg.html提供,感恩】
网友评论