Rumah > Java > javaTutorial > Bagaimana untuk menyemak sama ada nombor adalah nombor Harshad di Jawa?

Bagaimana untuk menyemak sama ada nombor adalah nombor Harshad di Jawa?

王林
Lepaskan: 2023-09-24 21:01:08
ke hadapan
1178 orang telah melayarinya

Bagaimana untuk menyemak sama ada nombor adalah nombor Harshad di Jawa?

Nombor Harshad boleh dibahagi dengan hasil tambah digitnya. Ringkasnya, jika jumlah semua digit nombor adalah faktor nombor itu, maka ia adalah nombor Harshad.

Dalam artikel ini, kita akan melihat cara menyemak nombor Harshad menggunakan bahasa pengaturcaraan Java.

Tunjukkan kepada anda beberapa contoh

Contoh 1

Masukkan nombor sebagai 18

Mari kita semak menggunakan logik nombor Harshad −

Jumlah digit nombor = 1 + 8 = 9.

Jadi, 18 boleh dibahagi dengan 9.

Oleh itu, 18 ialah nombor Harshad.

Terjemahan

Instance-2

ialah:

Instance-2

Nombor yang dimasukkan ialah 3

Mari kita semak menggunakan logik nombor Harshad −

Jumlah digit nombor = 3.

Jadi, 3 boleh dibahagi dengan 3.

Oleh itu, 3 ialah nombor Harshad.

Terjemahan bahasa Cina bagi

Instance-3

ialah:

Instance-3

Masukkan nombor sebagai 15

Mari kita semak menggunakan logik nombor Harshad −

Jumlah digit nombor = 1 + 5 = 6.

Jadi, 15 tidak boleh dibahagikan dengan 6.

Oleh itu, 14 bukan nombor Harshad.

Beberapa contoh nombor Harshad yang lain termasuk 1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 18, 20, dsb.

Tatabahasa

Tukar nilai integer kepada nilai rentetan menggunakan kaedah toString() terbina dalam.

Berikut ialah sintaks untuk menukar nilai integer kepada nilai rentetan dan kemudian mencari panjangnya dan menetapkan panjang kepada pembolehubah integer untuk mendapatkan jumlah bilangan digit dalam nombor -

String str = Integer.toString(input_number);
Salin selepas log masuk

Untuk mendapatkan panjang integer, kami akan menggunakan kaedah length() terbina dalam kelas Java String Kaedah mengembalikan panjang objek String.

int length = st.length();
Salin selepas log masuk

Untuk mendapatkan watak pada kedudukan/indeks tertentu dalam rentetan, kami menggunakan kaedah charAt() . di mana charAt(i)-‘0’ mengembalikan nilai integer sebenar.

int num = st.charAt(i)-‘0’;
Salin selepas log masuk

Di mana "st" merujuk kepada rentetan dan "i" ialah pembolehubah lelaran yang melelaran ke atas rentetan.

Algoritma

Algoritma 1

  • Langkah 1 - Dapatkan integer melalui permulaan atau input pengguna.

  • Langkah 2 - Cari jumlah setiap digit nombor dengan mengulang setiap digit nombor itu.

  • Langkah 3 - Kemudian semak sama ada nombor asal boleh dibahagi dengan hasil tambah semua digit nombor itu. Nombor yang diberikan ialah nombor Harshad jika boleh dibahagi, jika tidak, ia bukan nombor Harshad

Algoritma 2

  • Langkah 1 - Dapatkan integer melalui permulaan atau input pengguna.

  • Langkah 2 - Tukar integer kepada rentetan menggunakan kaedah toString() terbina dalam.

  • Langkah 3 - Cari panjang rentetan dengan menggunakan kaedah length() terbina dalam.

  • Langkah 4 - Kemudian dengan menggunakan gelung for, lelaran sehingga panjang rentetan dan dapatkan nilai integer 0' daripada rentetan menggunakan charAt(i)-' dan rekod jumlah semua nombor.

  • Langkah 5 - Kemudian semak sama ada nombor asal boleh dibahagi dengan hasil tambah semua digit nombor itu. Nombor yang diberikan ialah nombor Harshad jika boleh dibahagi, jika tidak, ia bukan nombor Harshad.

Pelbagai kaedah

Kami menyediakan penyelesaian dengan cara yang berbeza

  • Jangan guna tali

  • Dengan menggunakan rentetan

Mari kita lihat program dan outputnya satu persatu.

Kaedah 1: Tanpa menggunakan tali

Dalam kaedah ini, nilai integer akan dimulakan dalam program dan kemudian dengan menggunakan Algoritma-1 kita boleh menyemak sama ada nombor ialah nombor Harshad.

Contoh

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");
   }
}
Salin selepas log masuk

Output

Given number: 21
21 is a Harshad number
Salin selepas log masuk

Kaedah 2: Menggunakan rentetan

Dalam kaedah ini, nilai integer akan dimulakan dalam atur cara dan kemudian menggunakan Algoritma-2 kami akan menyemak sama ada nombor itu ialah nombor Harshad atau tidak.

Contoh

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");      
   }
}
Salin selepas log masuk

Output

Given number: 40
40 is a Harshad number
Salin selepas log masuk

Dalam artikel ini, kami meneroka cara untuk menyemak sama ada nombor ialah nombor Harshad di Jawa menggunakan kaedah yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada nombor adalah nombor Harshad di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan