Table des matières
Introduction au problème
Rotation d'un numéro donné
Exemple
Méthode
Complexité temporelle et spatiale
Idée générale
Conclusion
Maison interface Web js tutoriel Programme JavaScript pour vérifier si toutes les rotations d'un nombre donné sont supérieures ou égales à un nombre donné

Programme JavaScript pour vérifier si toutes les rotations d'un nombre donné sont supérieures ou égales à un nombre donné

Sep 08, 2023 pm 05:49 PM

JavaScript 程序检查给定数字的所有旋转是否大于或等于给定数字

Dans cet article, nous allons passer par un programme JavaScript pour vérifier si toutes les rotations d'un nombre donné sont supérieures ou égales à un nombre donné. Nous allons écrire un algorithme et expliquer chaque étape que nous effectuons. La complexité temporelle des codes qui seront discutés sera optimiste, tandis que la complexité spatiale s'améliorera d'un code à l'autre.

Introduction au problème

Dans cette question, on nous donne un nombre et nous devons vérifier si chaque rotation est supérieure au nombre actuel ou simplement nous devons trouver la rotation du nombre actuel qui est inférieure au nombre actuel et s'il y a un nombre plus petit dans la rotation alors nous retournerons faux, sinon nous retournerons vrai.

Rotation d'un numéro donné

Exemple

La rotation d'un nombre donné peut être de deux types : dans le sens horaire ou antihoraire. En rotation dans le sens des aiguilles d'une montre, nous prenons le dernier chiffre du nombre et l'ajoutons avant le premier chiffre. Par exemple -

var number = 1234 
var last_digit = number%10;
number /= 10;
number = Math.floor(number)
var answer = last_digit.toString() + number.toString();
console.log("The first rotation of the given number is: " + answer)
Copier après la connexion

Dans le code ci-dessus, on nous donne un nombre et nous devons trouver la première rotation du nombre donné. Tout d’abord, nous stockons le dernier chiffre du nombre actuel dans une autre variable, puis supprimons le dernier chiffre du nombre donné en le divisant par 10 et en prenant la limite.

Enfin, nous ajoutons le numéro actuel après le dernier numéro, ce qui nous donne notre premier tour.

Exemple

Pour obtenir le prochain tour ou le deuxième tour du numéro actuel, nous pouvons obtenir le prochain tour du premier tour ou même nous pouvons le faire par une autre méthode commune à tout tour, voyons cela à travers le code -

var number = 1234 
var i = 2
var n_string = number.toString()
var last_i_elements = n_string.substring(n_string.length-i);
var answer = last_i_elements+ n_string.substring(0,n_string.length-i);
console.log("The ith rotation of the given number is: " + answer)
Copier après la connexion

Dans le code ci-dessus, on nous donne un nombre et nous devons trouver la ième rotation du nombre donné. Tout d’abord, nous stockons le dernier chiffre « i » du numéro actuel dans une autre variable.

Enfin, nous ajoutons le numéro actuel à la chaîne contenant le dernier numéro "i", ce qui nous donne notre premier tour.

La méthode décrite ci-dessus consiste à faire pivoter le numéro dans le sens des aiguilles d'une montre et pour une rotation dans le sens inverse des aiguilles d'une montre, nous devons sélectionner le numéro à l'avant et l'ajouter à la fin.

Lorsqu’il n’y a aucune spécification quant à la rotation que nous devons choisir, nous choisissons dans le sens des aiguilles d’une montre. Ainsi dans l’exemple nous verrons une rotation dans le sens des aiguilles d’une montre.

Méthode

Cette méthode est la méthode de la force brute, dans cette méthode, nous trouverons chaque tour d'un nombre donné et vérifierons chaque nombre supérieur. Si nous trouvons un nombre inférieur au nombre actuel, nous renverrons faux, sinon nous renverrons vrai.

Exemple

Jetons d’abord un coup d’œil au code, puis passons à l’explication du code -

function check(number,i){
   var n_string = number.toString()
   var last_i_elements = n_string.substring(n_string.length-i);
   var answer = last_i_elements+ n_string.substring(0,n_string.length-i);
   if(answer < n_string){
      return false;
   }
   return true;
}

var number = 12345
// checking for every rotation
var ans = true;
for(var i=1;i<number.toString().length;i++){
   ans = check(number,i);
   if(ans == false){
      break;
   }
}
if(ans == true){
   console.log("There is no rotation present which is less then given number")
}
else{
   console.log("There is a rotation of given number present which is less then given number")
}
Copier après la connexion

Dans le programme ci-dessus, nous parcourons d'abord de 1 à la taille du nombre moins 1 dans une boucle for pour obtenir chaque rotation de 1 à la taille moins 1. A chaque itération, nous appelons une fonction prédéfinie.

Dans la fonction, nous obtiendrons la ième rotation qui est passée en argument à la fonction et comparée au nombre donné. Si la ième rotation est inférieure au nombre donné, alors nous renverrons false comme valeur de retour, sinon nous renverrons true.

Nous maintenons une variable appelée réponse qui stockera les valeurs vraies et fausses renvoyées par la fonction et imprimera la réponse sur demande.

Complexité temporelle et spatiale

Dans le code ci-dessus, nous avons appelé la fonction check() n fois au total, où n est la taille du nombre donné. À l’intérieur de la fonction, nous créons une sous-chaîne qui est une copie du nombre donné et itérons n fois, ce qui signifie que nous l’utilisons n*n fois. Par conséquent, la complexité temporelle de la fonction donnée est O(N*N).

Dans la fonction de vérification, chaque fois que nous créons une copie du numéro donné, cela signifie que nous utilisons N espaces supplémentaires. Par conséquent, la complexité spatiale de la fonction donnée est O(N).

Idée générale

Dans le code ci-dessus, si tous les nombres sont différents, alors nous pouvons obtenir la réponse en complexité temporelle O(N) et en complexité spatiale O(1), car si un nombre est inférieur au premier nombre, cela signifie qu'il y a un possibilité que le nombre soit inférieur dans un tour exact par rapport au nombre initial.

Conclusion

Dans ce tutoriel, nous utilisons un programme JavaScript pour vérifier si toutes les rotations d'un nombre donné sont supérieures ou égales à un nombre donné. La complexité temporelle du programme est O(N*N) et la complexité spatiale est O(N), où N est la taille du nombre donné. Nous avons mis en place un programme qui nous permet de trouver chaque tour d'un numéro donné et de le comparer avec le numéro d'origine.

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment créer et publier mes propres bibliothèques JavaScript? Comment créer et publier mes propres bibliothèques JavaScript? Mar 18, 2025 pm 03:12 PM

L'article discute de la création, de la publication et du maintien des bibliothèques JavaScript, en se concentrant sur la planification, le développement, les tests, la documentation et les stratégies de promotion.

Comment optimiser le code JavaScript pour les performances dans le navigateur? Comment optimiser le code JavaScript pour les performances dans le navigateur? Mar 18, 2025 pm 03:14 PM

L'article traite des stratégies pour optimiser les performances JavaScript dans les navigateurs, en nous concentrant sur la réduction du temps d'exécution et la minimisation de l'impact sur la vitesse de chargement de la page.

Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Apr 04, 2025 pm 02:42 PM

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur? Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur? Mar 18, 2025 pm 03:16 PM

L'article traite du débogage efficace de JavaScript à l'aide d'outils de développeur de navigateur, de se concentrer sur la définition des points d'arrêt, de l'utilisation de la console et d'analyser les performances.

Comment utiliser les cartes source pour déboguer le code JavaScript minifié? Comment utiliser les cartes source pour déboguer le code JavaScript minifié? Mar 18, 2025 pm 03:17 PM

L'article explique comment utiliser les cartes source pour déboguer JavaScript minifiée en le mappant au code d'origine. Il discute de l'activation des cartes source, de la définition de points d'arrêt et de l'utilisation d'outils comme Chrome Devtools et WebPack.

Début avec Chart.js: tarte, beignet et graphiques à bulles Début avec Chart.js: tarte, beignet et graphiques à bulles Mar 15, 2025 am 09:19 AM

Ce tutoriel expliquera comment créer des graphiques à tarte, anneaux et bulles à l'aide de chart.js. Auparavant, nous avons appris quatre types de graphiques de graphique. Créer des graphiques à tarte et à anneaux Les graphiques à tarte et les graphiques d'anneaux sont idéaux pour montrer les proportions d'un tout divisé en différentes parties. Par exemple, un graphique à secteurs peut être utilisé pour montrer le pourcentage de lions mâles, de lions féminins et de jeunes lions dans un safari, ou le pourcentage de votes que différents candidats reçoivent lors des élections. Les graphiques à tarte ne conviennent que pour comparer des paramètres ou des ensembles de données uniques. Il convient de noter que le graphique à tarte ne peut pas dessiner des entités avec une valeur nulle car l'angle du ventilateur dans le graphique à tarte dépend de la taille numérique du point de données. Cela signifie toute entité avec une proportion nulle

Qui est payé plus de python ou de javascript? Qui est payé plus de python ou de javascript? Apr 04, 2025 am 12:09 AM

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

TypeScript pour les débutants, partie 2: Types de données de base TypeScript pour les débutants, partie 2: Types de données de base Mar 19, 2025 am 09:10 AM

Une fois que vous avez maîtrisé le didacticiel TypeScript de niveau d'entrée, vous devriez être en mesure d'écrire votre propre code dans un IDE qui prend en charge TypeScript et de le compiler en JavaScript. Ce tutoriel plongera dans divers types de données dans TypeScript. JavaScript a sept types de données: null, non défini, booléen, numéro, chaîne, symbole (introduit par ES6) et objet. TypeScript définit plus de types sur cette base, et ce tutoriel les couvrira tous en détail. Type de données nuls Comme javascript, null en typeScript

See all articles