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
530 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!

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