Maison > développement back-end > C++ > Ajouter un au nombre représenté sous forme de tableau de chiffres dans le programme C ?

Ajouter un au nombre représenté sous forme de tableau de chiffres dans le programme C ?

PHPz
Libérer: 2023-09-07 12:49:17
avant
1046 Les gens l'ont consulté

Adding one to number represented as array of digits in C Program?

Dans cette section, nous verrons une question intéressante. Supposons qu'un nombre soit donné. Nous devons augmenter ce nombre de 1. C'est une tâche très simple. Mais ici, nous placerons les nombres sous forme de tableau. Chaque chiffre du nombre est placé comme élément du tableau. Si le nombre est 512, alors il sera stocké sous {5, 1, 2}. Et nous devons également utiliser une méthode récursive pour augmenter le nombre. Regardons l'algorithme pour avoir une idée claire.

Algorithme

incrément (arr, n, index) −

Initially the default value of index is 0
begin
   if index < n, then
      if arr[index] < 9, then
         arr[index] := arr[index] + 1
      else
         arr[index] := 0
         increment(arr, n, index + 1)
   end if
   if index = n, then
      arr[n] := 1
      n := n + 1
   end if
end
Copier après la connexion

Exemple

#include <iostream>
#include <cmath>
#define MAX 20
using namespace std;
void increment(int num_arr[], int &n, int index = 0){
   if(index < n){
      if(num_arr[index] < 9){ //if digit is less than 9, add 1
         num_arr[index]++;
      }else{ //otherwise increase number recursively
         num_arr[index] = 0;
         increment(num_arr, n, index+1);
      }
   }
   if(index == n){
      num_arr[n] = 1; //add extra carry
      n++; //increase n
   }
}
void dispNumber(int num_arr[], int n){
   for(int i = n-1; i>= 0; i--){
      cout << num_arr[i];
   }  
   cout << endl;
}
int numToArr(int num_arr[], int number){
   int i = 0;
   int n = log10(number) + 1;
   for(int i = i; i< n; i++){
      num_arr[i] = number % 10;
      number /= 10;
   }
   return n;
}
main() {
   int number = 1782698599;
   int num_arr[MAX];
   int n = numToArr(num_arr, number);
   cout << "Initial Number: "; dispNumber(num_arr, n);
   increment(num_arr, n);
   cout << "Final Number: "; dispNumber(num_arr, n);
}
Copier après la connexion

Sortie

Initial Number: 1782698599
Final Number: 1782698600
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!

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