Table des matières
Explication
Exemple
Maison développement back-end C++ Ajouter 1 à un nombre représenté par une liste chaînée

Ajouter 1 à un nombre représenté par une liste chaînée

Aug 29, 2023 pm 09:17 PM
数字 链表 ajouter

Ajouter 1 à un nombre représenté par une liste chaînée

La représentation en liste chaînée d'un nombre est fournie comme ceci : Tous les nœuds de la liste chaînée sont considérés comme un chiffre du nombre. Les nœuds stockent les nombres de telle sorte que le premier élément de la liste chaînée contienne le chiffre le plus significatif du nombre et que le dernier élément de la liste chaînée contienne le chiffre le moins significatif du nombre. Par exemple, le nombre 202345 est représenté dans la liste chaînée par (2->0->2->3->4->5).

Pour ajouter 1 à cette liste chaînée représentant des nombres, nous devons vérifier la valeur du bit le moins significatif de la liste. Si c'est moins de 9 c'est ok, sinon le code changera le numéro suivant et ainsi de suite.

Voyons maintenant un exemple pour comprendre comment procéder, 1999 est représenté par (1->9->9 ->9) et l'ajout de 1 devrait le changer en (2->0->0->0 )

1

2

Input:1999

Output:2000

Copier après la connexion

Explication

Ajoutez 1 au nombre représenté par la liste chaînée donnée, ce qui signifie que vous devez suivre les étapes suivantes :

  • Inverser la liste chaînée : Vous devez inverser la liste chaînée, c'est-à-dire changer le dernier numéro au premier, le premier devient le dernier. Par exemple, 1->9->9->9 se traduit par 9->9->9->1.
  • Pour cette liste chaînée inversée, parcourez la liste chaînée et ajoutez 1 au nœud le plus à gauche. Si la valeur de ce nœud est égale à 9, alors le report est transmis au nœud suivant. Répétez ce processus jusqu'à ce qu'il n'y ait plus de report.
  • Restaurez la chaîne à sa forme originale et renvoyez le nœud principal pour imprimer la chaîne.

Exemple

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

#include <iostream>

using namespace std;

//n=next node ; d=data ; p= previous node; h=head node; c=current node

class Node {

   public:

      int d;

      Node* n;

};

Node *newNode(int d) {

   Node *new_node = new Node;

   new_node->d = d;

   new_node->n = NULL;

   return new_node;

}

Node *reverse(Node *h) {

   Node * p = NULL;

   Node * c = h;

   Node * n;

   while (c != NULL) {

      n = c->n;

      c->n = p;

      p = c;

      c = n;

   }

   return p;

}

Node *addOneUtil(Node *h) {

   Node* res = h;

   Node *temp, *p = NULL;

   int carry = 1, sum;

   while (h != NULL) {

      sum = carry + h->d;

      carry = (sum >= 10)? 1 : 0;

      sum = sum % 10;

      h->d = sum;

      temp = h;

      h = h->n;

   }

   if (carry > 0)

      temp->n = newNode(carry);

   return res;

}

Node* addOne(Node *h) {

   h = reverse(h);

   h = addOneUtil(h);

   return reverse(h);

}

int main() {

   Node *h = newNode(1);

   h->n = newNode(9);

   h->n->n = newNode(9);

   h->n->n->n = newNode(9);

   h = addOne(h);

   while (h != NULL) {

      cout << h->d;

      h = h->n;

   }

   cout<<endl;

   return 0;

}

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!

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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

iOS 17 : Comment changer le style d'horloge de l'iPhone en mode veille iOS 17 : Comment changer le style d'horloge de l'iPhone en mode veille Sep 10, 2023 pm 09:21 PM

La veille est un mode d'écran de verrouillage qui s'active lorsque l'iPhone est branché sur le chargeur et orienté en orientation horizontale (ou paysage). Il se compose de trois écrans différents, dont l'un affiche l'heure en plein écran. Lisez la suite pour savoir comment changer le style de votre horloge. Le troisième écran de StandBy affiche les heures et les dates dans différents thèmes que vous pouvez faire glisser verticalement. Certains thèmes affichent également des informations supplémentaires, comme la température ou la prochaine alarme. Si vous maintenez une horloge enfoncée, vous pouvez basculer entre différents thèmes, notamment numérique, analogique, mondial, solaire et flottant. Float affiche l'heure dans de grands nombres de bulles dans des couleurs personnalisables, Solar a une police plus standard avec un motif d'éruption solaire dans différentes couleurs et World affiche le monde en mettant en surbrillance

Comment ajouter des points à Berserker dans Dungeon and Fighter Origins Comment ajouter des points à Berserker dans Dungeon and Fighter Origins Mar 17, 2024 am 08:13 AM

Comment ajouter des points au berserker dans Dungeon and Fighter Origins ? Le berserker est une profession à dégâts mixtes dans le jeu. Dans le jeu, vous serez confronté au choix entre la force et les attributs physiques. les paramètres des armes, il y a Ce à quoi vous devez faire attention, voici un aperçu des priorités pour ajouter des points aux attributs Berserker dans Dungeon et Fighter Origins. Dungeon and Fighter Origins Liste de priorité des points d'attribut Berserker 1. Priorité des points d'attribut Berserker : puissance d'attaque physique ; amélioration de tous les attributs physiques ; vitesse d'attaque/de libération des compétences ; ; Esprit. 2. Berserker est une profession qui combine des dégâts fixes et un pourcentage de dégâts, qui repose principalement sur l'attaque physique, la force et la puissance d'attaque indépendante. 3. Les attaques physiques affecteront les solides

Programme C++ pour arrondir un nombre à n décimales Programme C++ pour arrondir un nombre à n décimales Sep 12, 2023 pm 05:13 PM

Représenter des nombres en sortie est une tâche intéressante et importante lors de l’écriture d’un programme dans n’importe quel langage. Pour les types entiers (données de type court, long ou moyen), il est facile de représenter des nombres en sortie. Pour les nombres à virgule flottante (de type flottant ou double), nous devons parfois les arrondir à un nombre spécifique de décimales. Par exemple, si nous voulons représenter 52,24568 sous forme de trois décimales, un prétraitement est nécessaire. Dans cet article, nous présenterons plusieurs techniques pour représenter les nombres à virgule flottante avec un nombre spécifique de décimales par arrondi. Parmi les différentes approches, il est important d'utiliser une chaîne de format de type C, d'utiliser l'argument de précision et d'utiliser la fonction round() de la bibliothèque mathématique. Regardons-les un par un. avec

Rechercher des nombres qui ne sont divisibles par aucun nombre dans une plage, à l'aide de C++ Rechercher des nombres qui ne sont divisibles par aucun nombre dans une plage, à l'aide de C++ Sep 13, 2023 pm 09:21 PM

Dans cet article, nous aborderons le problème de la recherche de nombres compris entre 1 et n (donnés) qui ne sont divisibles par aucun nombre compris entre 2 et 10. Comprenons cela avec quelques exemples - Entrée : num = 14 Sortie : 3 Explication : Il y a trois nombres, 1, 11 et 13, qui ne sont pas divisibles. Entrée : num = 21 Sortie : 5 Explication : Il y a cinq nombres 1, 11, 13, 17 et 19, qui ne sont pas divisibles. Méthode simple résolue si.

Recherchez le nième nœud de la dernière liste chaînée en C++ à l'aide de la méthode récursive Recherchez le nième nœud de la dernière liste chaînée en C++ à l'aide de la méthode récursive Sep 15, 2023 pm 05:53 PM

Étant donné une liste à chaînage unique et un entier positif N en entrée. Le but est de trouver le Nème nœud à partir de la fin de la liste donnée en utilisant la récursivité. Si la liste d'entrée a des nœuds a → b → c → d → e → f et N vaut 4, alors le 4ème nœud du dernier sera c. Nous allons d'abord parcourir jusqu'au dernier nœud de la liste et au retour du nombre d'incréments récursifs (retour en arrière). Lorsque count est égal à N, un pointeur vers le nœud actuel est renvoyé comme résultat. Examinons différents scénarios d'entrée et de sortie pour cela - Entrée - Liste : -1→5→7→12→2→96→33N=3 Sortie − Le Nième nœud du dernier est : 2 Explication − Le troisième nœud est 2 . Entrée - Liste : -12 → 53 → 8 → 19 → 20 → 96 → 33N = 8 Sortie – Le nœud n'existe pas

Téléchargez les dix principales applications de devises numériques dans le cercle des devises. Téléchargez les dix principales applications de devises numériques dans le cercle des devises. Feb 20, 2025 pm 06:15 PM

Les dix principaux applications de devises numériques dans le cercle des devises: Binance, Okx, Gate.io, Bitget, Huobi, Bybit, Kucoin, Mexc, Poloniex, Bitmart. Parmi eux, les quatre principales applications de trading dans le cercle des devises sont: Binance, Okx, Gate.io et Bitget, qui offrent un large éventail d'options de crypto-monnaie, des frais de transaction faibles, une puissante plate-forme de trading et des fonctions de trading avancées.

Programme Java pour vérifier si un nombre est divisible par 5 Programme Java pour vérifier si un nombre est divisible par 5 Sep 13, 2023 pm 09:01 PM

En mathématiques, la règle de divisibilité de 5 stipule que si un nombre se termine par 0 ou 5, il est divisible par 5. Il existe une autre façon de déterminer la règle de divisibilité de 5, si le reste est 0, renvoie alors le nombre divisible par 5. L'opérateur mod(%) est couramment utilisé dans la programmation pour la division entière. Donnons un exemple. Le nombre donné est 525, le nombre se termine par 5 et est divisible par 5. Le nombre donné est 7050 qui se termine par 0 et est divisible par 5. Le nombre donné est 678 qui ne se termine pas par 0 et 5 et n'est pas divisible par 5. Dans cet article, nous résoudrons la question de savoir si le nombre est divisible par 5. Algorithme Les étapes suivantes sont celles où nous utiliserons les packages java.util.* pour obtenir la saisie utilisateur des types de données primitifs. de la classe principale

Comment restaurer les numéros de marque de coin WeChat Comment restaurer les numéros de marque de coin WeChat Nov 29, 2023 pm 05:46 PM

Méthodes pour restaurer le numéro de coin WeChat : 1. Forcer la fermeture de WeChat et le redémarrage ; 2. Vider le cache de WeChat ; 3. Rechercher les mises à jour de la version de WeChat ; 4. Désinstaller et réinstaller WeChat ; Introduction détaillée : 1. Forcer la fermeture de WeChat et le redémarrage. Il s'agit de la méthode la plus courante pour résoudre le nombre anormal de marques de coin WeChat. Dans l'interface WeChat, cliquez sur le bouton « Moi » dans le coin inférieur gauche, puis cliquez sur « Paramètres. " dans le coin supérieur droit. Ouvrez l'interface des paramètres. Dans l'interface des paramètres, sélectionnez « Se déconnecter » pour vous déconnecter de WeChat. Après quelques secondes, redémarrez WeChat. Normalement, le numéro de coin reviendra à la normale, etc.

See all articles