Maison > développement back-end > C++ > Ajouter n chaînes binaires ?

Ajouter n chaînes binaires ?

PHPz
Libérer: 2023-08-25 14:53:25
avant
609 Les gens l'ont consulté

添加 n 个二进制字符串?

Dans ce programme, nous devons donner des nombres binaires et les additionner. Il existe n nombres binaires et nous devons tous les ajouter pour obtenir un nombre binaire en sortie.

Pour cela, nous utiliserons la logique d'addition binaire pour additionner tous les éléments de 1 à N un par un pour obtenir le résultat.

Input: "1011", "10", "1001"
Output: 10110
Copier après la connexion

Explication

Un moyen plus simple consiste à convertir la chaîne binaire en son équivalent décimal, puis à les additionner et à la convertir à nouveau en binaire. Ici, nous allons l'ajouter manuellement. Nous utiliserons une fonction d'assistance pour ajouter deux chaînes binaires. Cette fonction sera utilisée n-1 fois sur n chaînes binaires différentes.

Exemple

#include<iostream>
using namespace std;
string add(string b1, string b2) {
   string res = "";
   int s = 0;
   int i = b1.length() - 1, j = b2.length() - 1;
   while (i >= 0 || j >= 0 || s == 1) {
      if(i >= 0) {
         s += b1[i] - &#39;0&#39;;
      } else {
         s += 0;
      }
      if(j >= 0) {
         s += b2[j] - &#39;0&#39;;
      } else {
         s += 0;
      }
      res = char(s % 2 + &#39;0&#39;) + res;
      s /= 2;
      i--; j--;
   }
   return res;
}
string addbinary(string a[], int n) { string res = "";
   for (int i = 0; i < n; i++) {
      res = add(res, a[i]);
   }
   return res;
}
int main() {
   string arr[] = { "1011", "10", "1001" };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << addbinary(arr, n) << endl;
}
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal