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

Trouver le Nième nombre laid en Java

PHPz
Libérer: 2023-08-20 18:25:07
avant
837 Les gens l'ont consulté

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
Copier après la connexion

output:

5
Copier après la connexion

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
Copier après la connexion

Sortie :

8
Copier après la connexion

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);
   }
}
Copier après la connexion

Sortie

The Ugly no. at position 100 is 1536.
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal