Heim  >  Artikel  >  Java  >  Finden Sie die N-te hässliche Zahl in Java

Finden Sie die N-te hässliche Zahl in Java

PHPz
PHPznach vorne
2023-08-20 18:25:07749Durchsuche

Finden Sie die N-te hässliche Zahl in Java

Eine Zahl, die nur 2, 3 oder 5 als Primfaktoren hat, wird als hässliche Zahl bezeichnet. Einige hässliche Zahlen sind: 1, 2, 3, 4, 5, 6, 8, 10, 12, 15 usw.

Wir haben eine Zahl N und die Aufgabe besteht darin, die N-te hässliche Zahl in der Folge der hässlichen Zahlen zu finden.

Zum Beispiel:

Eingabe -1:

N = 5

Ausgabe:

5

Erklärung:

Die 5. hässliche Zahl in der Folge der hässlichen Zahlen [1, 2, 3, 4, 5 , 6, 8, 10, 12, 15] ist 5.

Eingabe-2:

N = 7

Ausgabe:

8

Erklärung:

in der hässlichen Zahlenfolge [1, 2, 3 , 4 , 5, 6, 8, 10, 12, 15], die siebte hässliche Zahl ist 8.

So lösen Sie dieses Problem

Eine einfache Möglichkeit, dieses Problem zu lösen, besteht darin, zu prüfen, ob die gegebene Zahl durch 2, 3 oder 5 teilbar ist, und die Folge bis zur gegebenen Zahl zu verfolgen. Finden Sie nun heraus, ob die Zahl die Bedingungen für alle hässlichen Zahlen erfüllt, und geben Sie diese Zahl als Ausgabe zurück.

  • Geben Sie eine Zahl N ein, um die N-te hässliche Zahl zu finden.
  • Eine boolesche Funktion isUgly(int n) nimmt eine Zahl „n“ als Eingabe und gibt „True“ zurück, wenn es eine hässliche Zahl ist, andernfalls „False“.
  • Eine Ganzzahlfunktion findNthUgly(int n) nimmt „n“ als Eingabe und gibt die n-te hässliche Zahl als Ausgabe zurück.

Beispiel

Demo

public class UglyN {
   public static boolean isUglyNumber(int num) {
      boolean x = true;
      while (num != 1) {
         if (num % 5 == 0) {
            num /= 5;
         }
         else if (num % 3 == 0) {
            num /= 3;
         }
         // To check if number is divisible by 2 or not
         else if (num % 2 == 0) {
            num /= 2;
         }
         else {
            x = false;
            break;
         }
      }
      return x;
   }
   public static int nthUglyNumber(int n) {
      int i = 1;
      int count = 1;
      while (n > count) {
         i++;
         if (isUglyNumber(i)) {
            count++;
         }
      }
      return i;
   }
   public static void main(String[] args) {
      int number = 100;
      int no = nthUglyNumber(number);
      System.out.println("The Ugly no. at position " + number + " is " + no);
   }
}

Ausgabe

The Ugly no. at position 100 is 1536.

Das obige ist der detaillierte Inhalt vonFinden Sie die N-te hässliche Zahl in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen