Maison > développement back-end > C++ > Dans le programme C, ajoutez deux nombres représentés par deux tableaux

Dans le programme C, ajoutez deux nombres représentés par deux tableaux

WBOY
Libérer: 2023-09-13 21:49:02
avant
1072 Les gens l'ont consulté

Dans le programme C, ajoutez deux nombres représentés par deux tableaux

Un nombre représenté par un tableau est stocké de telle manière que chaque chiffre du nombre soit représenté par un élément du tableau. Par exemple,

Number 234 in array is {2,3,4}.
Copier après la connexion

Pour additionner ces nombres, nous ajouterons d’abord les nombres au chiffre le plus bas et effectuerons un report si la somme est supérieure à 10. Après cela, nous continuerons le même processus pour le prochain numéro consécutif du tableau et le additionnerons.

Prenons un exemple et ajoutons deux nombres -

a = {2,9, 6}
b = {6, 3, 8}
Output: 934
Copier après la connexion

Explication − On va ajouter le bit le moins significatif du nombre qui est 6+8 = 14 ce qui propagera une retenue puis pour le même 9+3 +1 = 13, qui propage à nouveau le report au numéro suivant. La somme des prochains nombres sera 2+6+1 = 9. Cela ferait la somme de 934.

Algorithme

Pour trouver la somme des nombres stockés sous forme de tableau. Nous vérifions d’abord si un nombre comporte plus de chiffres. Si tel est le cas, nous trouvons la somme des chiffres du plus petit nombre, puis ajoutons les chiffres du plus grand nombre.

De plus, nous rechercherons un numéro de report, qui gardera une trace des reports pouvant survenir dans la somme et qui doivent être transmis, initialement avec une valeur de zéro, et mis à zéro avant chaque itération de la somme. Nous trouverons la somme des nombres un par un, la stockerons dans un tableau, puis l'imprimerons.

Exemple

Démo en direct

#include <iostream>
using namespace std;
int Sum(int a[], int b[], int n, int m){
   int sum[n];
   int i = n - 1, j = m - 1, k = n - 1;
   int c = 0, s = 0;
   while (j >= 0) {
      s = a[i] + b[j] + c;
      sum[k] = (s % 10);
      c = s / 10;
      k--;
      i--;
      j--;
   }
   while (i >= 0) {
      s = a[i] + c;
      sum[k] = (s % 10);
      c = s / 10;
      i--;
      k--;
   }
   for (int i = 0; i <= n-1; i++) {
      cout<<sum[i];
   }
}
int main(){
   int a[] = { 5, 6, 9 };
   int b[] = { 3, 8 };
   int n = sizeof(a) / sizeof(a[0]);
   int m = sizeof(b) / sizeof(b[0]);
   cout<<"The sum is ";
   if (n >= m)
      Sum(a, b, n, m);
   else
      Sum(b, a, m, n);
   return 0;
}
Copier après la connexion

Sortie

The sum is 607
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