Maison > développement back-end > C++ > Étant donné une contrainte, ajoutez les éléments du tableau donné

Étant donné une contrainte, ajoutez les éléments du tableau donné

PHPz
Libérer: 2023-09-05 13:01:06
avant
1106 Les gens l'ont consulté

Étant donné une contrainte, ajoutez les éléments du tableau donné

Pour ce problème, pour ajouter des éléments de deux tableaux donnés, nous avons quelques contraintes, en fonction de ces contraintes, les valeurs ajoutées changeront. La somme de deux tableaux donnés a[] et b[] est stockée dans un troisième tableau c[] afin qu'ils donnent certains éléments en nombres unitaires. Si le nombre de chiffres de la somme est supérieur à 1, les éléments du troisième tableau sont divisés en deux éléments à un chiffre. Par exemple, si la somme est 27, le troisième tableau la stockera sous la forme 2,7.

Input: a[] = {1, 2, 3, 7, 9, 6}
       b[] = {34, 11, 4, 7, 8, 7, 6, 99}
Output: 3 5 1 3 7 1 4 1 7 1 3 6 9 9
Copier après la connexion

Explication

Sortez des tableaux et exécutez une boucle à partir du 0ème index des deux tableaux. Pour chaque itération de la boucle, nous considérons les éléments suivants dans les deux tableaux et les ajoutons. Si la somme est supérieure à 9, nous poussons les nombres individuels de la somme vers le tableau de sortie, sinon nous poussons la somme elle-même vers le tableau de sortie. Enfin, nous poussons les éléments restants du plus grand tableau d’entrée vers le tableau de sortie.

Exemple

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
void split(int n, vector<int> &c) {
   vector<int> temp;
   while (n) {
      temp.push_back(n%10);
      n = n/10;
   }
   c.insert(c.end(), temp.rbegin(), temp.rend());
}
void addArrays(int a[], int b[], int m, int n) {
   vector<int> out;
   int i = 0;
   while (i < m && i < n) {
      int sum = a[i] + b[i];
      if (sum < 10) {
         out.push_back(sum);
      } else {
         split(sum, out);
      }
      i++;
   }
   while (i < m) {
      split(a[i++], out);
   }
   while (i < n) {
      split(b[i++], out);
   }
   for (int x : out)
   cout << x << " ";
}
int main() {
   int a[] = {1, 2, 3, 7, 9, 6};
   int b[] = {34, 11, 4, 7, 8, 7, 6, 99};
   int m =6;
   int n = 8;
   addArrays(a, b, m, n);
   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!

É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