Rumah > pembangunan bahagian belakang > C++ > Tambah n rentetan binari?

Tambah n rentetan binari?

PHPz
Lepaskan: 2023-08-25 14:53:25
ke hadapan
558 orang telah melayarinya

添加 n 个二进制字符串?

Dalam program ini, kita perlu memberi nombor binari dan menambahnya. Terdapat n nombor binari dan kita perlu menambah kesemuanya untuk mendapatkan nombor binari sebagai output.

Untuk ini kami akan menggunakan logik penambahan binari untuk menambah semua item dari 1 hingga N satu demi satu untuk mendapatkan hasilnya.

Input: "1011", "10", "1001"
Output: 10110
Salin selepas log masuk

Penjelasan

Cara yang lebih mudah ialah menukar rentetan binari kepada persamaan perpuluhannya, kemudian tambahkannya bersama-sama dan tukarkan kepada binari semula. Di sini kami akan menambahnya secara manual. Kami akan menggunakan fungsi pembantu untuk menambah dua rentetan binari. Fungsi ini akan digunakan n-1 kali terhadap n rentetan binari yang berbeza.

Contoh

#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;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Tambah n rentetan binari?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan