Table des matières
Méthode à utiliser
Facile : faites pivoter les nombres vers la droite
Algorithme
Exemple
Sortie
Méthode efficace : multiplier par X
Conclusion
Maison développement back-end C++ Coût minimum de conversion de 1 en N, qui peut être obtenu en multipliant par X ou en tournant à droite du nombre

Coût minimum de conversion de 1 en N, qui peut être obtenu en multipliant par X ou en tournant à droite du nombre

Sep 12, 2023 pm 08:09 PM
旋转 成本 转换

Coût minimum de conversion de 1 en N, qui peut être obtenu en multipliant par X ou en tournant à droite du nombre

Nous pouvons utiliser la technique suivante pour trouver le moyen le moins cher de multiplier X ou de faire pivoter son nombre de 1 à N vers la droite. Pour surveiller le coût minimum initial, créez une variable de coût. En passant de N à 1, vérifiez si N est divisible par X à chaque étape. Si tel est le cas, divisez N par X pour le mettre à jour et continuez le processus. Si N n'est pas divisible par X, bouclez les chiffres de N vers la droite pour augmenter sa valeur. Ajoutez la variable de coût dans ce cas. La valeur finale de la variable de coût sera le montant minimum requis pour transformer 1 en N. L'algorithme détermine efficacement les opérations minimales requises pour effectuer la transformation souhaitée à l'aide d'une rotation ou d'une multiplication numérique.

Méthode à utiliser

  • Approche naïve : rotation à droite des nombres

  • Méthode efficace : multiplier par X

Facile : faites pivoter les nombres vers la droite

L'approche naïve consiste à commencer par le chiffre 1 et à faire pivoter ses chiffres à plusieurs reprises vers la droite jusqu'à atteindre le chiffre cible N. À chaque tour, le dernier numéro devient le premier numéro. Bien que conceptuellement simple, cette stratégie peut s’avérer inefficace pour des valeurs élevées de N et nécessiter de nombreuses étapes pour atteindre le nombre cible. À mesure que N augmente, le nombre de rotations augmente également rapidement, ce qui en fait une méthode moins efficace pour déterminer le coût minimum de conversion de 1 en N. En raison de son inefficacité, cette méthode n'est pas recommandée pour les grandes valeurs de N, alors que d'autres méthodes, comme la division de N par X, se sont révélées plus efficaces pour trouver le coût de transformation le plus bas.

Algorithme

  • Créez la variable "coût" pour suivre les étapes nécessaires pour atteindre N et initialisez-la à 1 pour représenter la valeur actuelle.

  • Répétez ces instructions jusqu'à ce que le numéro actuel soit égal à N :

    Faites pivoter les chiffres du numéro actuel vers la droite pour que le dernier chiffre devienne le premier chiffre.

    Enregistrez le nombre de tours requis en incrémentant la variable "coût" de 1.

  • Une fois que le nombre actuel est égal à N, la variable "coût" stockera le nombre minimum d'étapes requises pour faire pivoter l'entier d'origine (1) vers N en utilisant une rotation à droite.

Exemple

#include <iostream>
#include <cmath>

int rotateDigits(int num, int numDigits) {
    return (num / 10) + (num % 10) * std::pow(10, numDigits - 1);
}

int main() {
    int N = 123; // Replace this with your desired N value

    int current = 1;
    int cost = 0;
    bool found = false;

    while (current != N) {
        int numDigits = std::to_string(current).length();
        current = rotateDigits(current, numDigits);
        cost++;

        if (cost > N) {
            std::cout << "N cannot be reached from 1 using right rotations." << std::endl;
            found = true;
            break;
        }
    }

    if (!found) {
        std::cout << "Minimum steps to reach N: " << cost << std::endl;
    }
    return 0;
}
Copier après la connexion

Sortie

N cannot be reached from 1 using right rotations.
Copier après la connexion

Méthode efficace : multiplier par X

La meilleure façon de minimiser le coût de multiplication de 1 par N est de diviser périodiquement N par X jusqu'à ce que le résultat soit 1. Pour y parvenir, initialisez une variable de coût pour surveiller le coût minimum. Nous déterminons si N est divisible par X en commençant par la valeur de N. Si N et X sont divisibles, le coût augmente et une opération de division est effectuée. Répétez ce processus jusqu'à ce que N soit égal à 1. Cette méthode est plus efficace que la "rotation du nombre à droite" car elle nécessite moins d'étapes pour obtenir le résultat 1. En raison de sa nature plus rapide et plus efficace, il s’agit de la méthode privilégiée pour déterminer le coût de commutation le plus bas.

Algorithme

  • Pour suivre le coût minimum, initialisez la variable "coût" à 0.

  • Partez d'un nombre cible N donné, en utilisant un multiplicateur fixe X.

  • Tant que N est supérieur à 1, répétez les étapes 4 à 6.

  • En supposant que N% X == 0, déterminez si N est divisible par X.

  • Si N est divisible (N = N/X), divisez N par X et ajoutez 1 à la variable "coût".

  • S'il n'est pas divisible, bouclez les N nombres vers la droite (en déplaçant le dernier chiffre vers le premier) et augmentez le "coût" de 1.

  • Répétez les étapes 3 à 6 jusqu'à ce que N devienne 1.

  • Le dernier "coût" représente le minimum requis pour multiplier par X ou décaler le nombre vers la droite pour changer 1 en N.

Exemple

#include <iostream>
#include <cmath>

int main() {
    int X = 3;
    int N = 100;
    int cost = 0;

    while (N > 1) {
        if (N % X == 0) {
            N /= X;
            cost++;
        } else {
            int lastDigit = N % 10;
            N = (N / 10) + (lastDigit * std::pow(10, std::floor(std::log10(N))));
            cost++;
        }
    }

    std::cout << "Final cost: " << cost << std::endl;

    return 0;
}
Copier après la connexion

Sortie

Final cost: 2
Copier après la connexion

Conclusion

En résumé, lorsqu'il s'agit de déterminer le coût le plus bas de conversion de 1 en N en multipliant par X ou en faisant pivoter le nombre vers la droite, la méthode efficace de multiplication par L'approche plus rationalisée fournie par des méthodes efficaces nécessite moins d'étapes pour atteindre le nombre requis de N. D’un autre côté, les méthodes naïves peuvent s’avérer inefficaces et chronophages, notamment pour des valeurs de N plus élevées. Nous pouvons réduire les processus requis et utiliser des méthodes efficaces pour déterminer le moyen le plus économique de convertir 1 en N. Cette stratégie résout le problème de la détermination du coût minimum de ce processus de conversion et s'avère être un algorithme plus utile et plus efficace.

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.

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)

Un guide simple pour convertir USDT ERC20 en TRC20 Un guide simple pour convertir USDT ERC20 en TRC20 Jan 18, 2024 pm 06:09 PM

Nous vous apprenons étape par étape comment convertir le réseau USDTERC20 en réseau TRC20. En effet, de nombreuses personnes aiment déplacer le stablecoin USDT du réseau Ethereum vers le réseau Tron pour économiser sur les frais de transaction. Donc, si vous souhaitez convertir vos jetons ERC-20 en TRC-20, je pense que ce tutoriel vous sera utile. La différence entre les jetons ERC-20 et TRC-20 Les jetons ERC-20 et TRC-20 représentent respectivement des jetons basés sur le réseau Ethereum et le réseau Tron. Il existe quelques différences entre les deux réseaux, principalement sur les aspects suivants : Premièrement, le réseau Ethereum est souvent confronté à des congestions et à des frais de gaz élevés, ce qui peut entraîner des retards et des coûts de transaction élevés. En comparaison, le réseau Tron est relativement moins encombré

Conseils pratiques pour convertir des lettres anglaises pleine chasse en demi-chasse Conseils pratiques pour convertir des lettres anglaises pleine chasse en demi-chasse Mar 26, 2024 am 09:54 AM

Conseils pratiques pour convertir des lettres anglaises pleine chasse en formes demi-largeur. Dans la vie moderne, nous sommes souvent en contact avec des lettres anglaises et nous devons souvent saisir des lettres anglaises lorsque nous utilisons des ordinateurs, des téléphones portables et d'autres appareils. Cependant, nous rencontrons parfois des lettres anglaises pleine chasse et nous devons utiliser la forme demi-largeur. Alors, comment convertir des lettres anglaises pleine chasse en demi-chasse ? Voici quelques conseils pratiques pour vous. Tout d’abord, les lettres et chiffres anglais pleine chasse font référence à des caractères qui occupent une position pleine largeur dans la méthode de saisie, tandis que les lettres et chiffres anglais demi-chasse occupent une position pleine largeur.

Comment convertir des fichiers AI au format CDR Comment convertir des fichiers AI au format CDR Feb 19, 2024 pm 04:09 PM

Les fichiers AI font référence aux fichiers graphiques vectoriels créés par le logiciel Adobe Illustrator (AI en abrégé), tandis que les fichiers CDR font référence aux fichiers graphiques vectoriels créés par le logiciel CorelDRAW. Ces deux logiciels étant développés par des fabricants différents, leurs formats de fichiers sont différents et ne peuvent pas être directement convertis l'un vers l'autre. Cependant, nous pouvons convertir les fichiers AI en fichiers CDR via certaines méthodes. Une méthode de conversion couramment utilisée sera présentée ci-dessous. Étape 1 : Exporter les fichiers AI au format EPS AdobeIllust

Comment convertir ODT en Word sous Windows 11/10 ? Comment convertir ODT en Word sous Windows 11/10 ? Feb 20, 2024 pm 12:21 PM

Dans cet article, nous allons vous montrer comment convertir des fichiers OpenDocumentTextDocument (ODT) en Microsoft Word (Docx, DOC, etc.). Format. Comment convertir ODT en Word sous Windows 11/10 Voici comment convertir des documents ODT au format DOC ou DOCX sur un PC Windows : Convertir ODT en Word à l'aide de WordPad ou Word La première méthode que nous allons vous montrer consiste à utiliser WordPad ou MicrosoftWord pour convertir ODT en Word. Voici les étapes pour y parvenir : Tout d’abord, ouvrez l’application WordPad à l’aide du menu Démarrer. Maintenant, allez à

Comment convertir une machine virtuelle en machine physique ? Comment convertir une machine virtuelle en machine physique ? Feb 19, 2024 am 11:40 AM

La conversion d'une machine virtuelle (VM) en machine physique est le processus de migration des instances virtuelles et des logiciels d'application associés vers une plate-forme matérielle physique. Cette conversion permet d'optimiser les performances du système d'exploitation et l'utilisation des ressources matérielles. Cet article vise à fournir un aperçu approfondi de la façon d’effectuer cette conversion. Comment mettre en œuvre la migration d’une machine virtuelle vers une machine physique ? Généralement, le processus de conversion entre une machine virtuelle et une machine physique est effectué en dehors de la machine virtuelle par un logiciel tiers. Ce processus comprend plusieurs étapes impliquant la configuration des machines virtuelles et le transfert de ressources. Préparez la machine physique : la première étape consiste à vous assurer que la machine physique répond à la configuration matérielle requise pour Windows. Nous devons sauvegarder les données sur une machine physique car le processus de conversion écrasera les données existantes. *Nom d'utilisateur et mot de passe pour un compte administrateur avec des droits d'administrateur pour créer des images système. sera virtuel

Traitement du temps Golang : Comment convertir l'horodatage en chaîne dans Golang Traitement du temps Golang : Comment convertir l'horodatage en chaîne dans Golang Feb 24, 2024 pm 10:42 PM

Conversion de l'heure Golang : Comment convertir l'horodatage en chaîne Dans Golang, l'opération temporelle est l'une des opérations les plus courantes. Parfois, nous devons convertir l'horodatage en chaîne pour un affichage ou un stockage facile. Cet article explique comment utiliser Golang pour convertir des horodatages en chaînes et fournit des exemples de code spécifiques. 1. Conversion des horodatages et des chaînes Dans Golang, les horodatages sont généralement exprimés sous la forme de nombres entiers, qui représentent le nombre de secondes entre le 1er janvier 1970 et l'heure actuelle. La chaîne est

Explication détaillée de la méthode d'implémentation de conversion des mois PHP en mois anglais Explication détaillée de la méthode d'implémentation de conversion des mois PHP en mois anglais Mar 21, 2024 pm 06:45 PM

Cet article présentera en détail comment convertir des mois en PHP en mois en anglais et donnera des exemples de code spécifiques. Dans le développement PHP, nous devons parfois convertir des mois numériques en mois anglais, ce qui est très pratique dans certains scénarios de traitement de dates ou d'affichage de données. Les principes de mise en œuvre, les exemples de code spécifiques et les précautions seront expliqués en détail ci-dessous. 1. Principe de mise en œuvre En PHP, vous pouvez convertir des mois numériques en mois anglais en utilisant la classe DateTime et la méthode de format. Date

Comment convertir de la musique qq au format mp3 Convertir de la musique qq au format mp3 sur téléphone mobile Comment convertir de la musique qq au format mp3 Convertir de la musique qq au format mp3 sur téléphone mobile Mar 21, 2024 pm 01:21 PM

QQ Music permet à tout le monde de regarder des films et de soulager l'ennui. Vous pouvez utiliser ce logiciel tous les jours pour satisfaire facilement vos besoins. Un grand nombre de chansons de haute qualité sont disponibles pour que tout le monde puisse les écouter. la prochaine fois que vous les écouterez, vous n'aurez pas besoin d'une connexion Internet. Les chansons téléchargées ici ne sont pas au format MP3 et ne peuvent pas être utilisées sur d'autres plateformes. Une fois l'abonnement expiré, il n'y a aucun moyen de les réécouter. , de nombreux amis souhaitent convertir les chansons au format MP3 Ici, l'éditeur explique Vous proposez des méthodes pour que tout le monde puisse les utiliser ! 1. Ouvrez QQ Music sur votre ordinateur, cliquez sur le bouton [Menu principal] dans le coin supérieur droit, cliquez sur [Transcodage audio], sélectionnez l'option [Ajouter une chanson] et ajoutez les chansons qui doivent être converties ; les chansons, cliquez pour sélectionner Convertir en [mp3]

See all articles