Maison  >  Article  >  développement back-end  >  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
WBOYavant
2023-09-13 21:49:021054parcourir

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

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

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

Sortie

The sum is 607

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer