Maison  >  Article  >  Java  >  Trouver le Nième nombre laid en Java

Trouver le Nième nombre laid en Java

PHPz
PHPzavant
2023-08-20 18:25:07794parcourir

Trouver le Nième nombre laid en Java

Un nombre qui n'a que 2, 3 ou 5 comme facteurs premiers est appelé un nombre laid. Certains nombres laids incluent : 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, etc.

Nous avons un nombre N, et la tâche est de trouver le Nième nombre laid dans la séquence de nombres laids.

pour exemple:

input -1:

N = 5

output:

5

explanation:

le 5ème nombre laid dans la séquence de nombres laids [1, 2, 3, 4, 5, 6, 8, 10, 12, 15] est 5.

Entrée-2 :

N = 7

Sortie :

8

Explication :

dans la séquence de nombres laide [1, 2, 3 , 4 , 5, 6, 8, 10, 12, 15], le septième nombre laid est 8.

Comment résoudre ce problème

Un moyen simple de résoudre ce problème est de vérifier si le nombre donné est divisible par 2, 3 ou 5 et de suivre la séquence jusqu'au nombre donné. Déterminez maintenant si le nombre satisfait aux conditions de tous les nombres laids et renvoyez ce nombre en sortie.

  • Entrez un numéro N pour trouver le Nième numéro laid.
  • Une fonction booléenne isUgly(int n) prend un nombre « n » en entrée et renvoie True s'il s'agit d'un nombre laid, False sinon.
  • Une fonction entière findNthUgly(int n) prend 'n' en entrée et renvoie le nième nombre laid en sortie.

Exemple

Démo

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);
   }
}

Sortie

The Ugly no. at position 100 is 1536.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer