首頁 > Java > java教程 > 主體

如何在Java中檢查一個數字是否為Harshad數?

王林
發布: 2023-09-24 21:01:08
轉載
1144 人瀏覽過

如何在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數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板