


Untuk semua nombor perduaan yang mungkin panjang n, jumlah dua bahagian adalah sama?
Di sini kita akan melihat semua kemungkinan nombor binari n bit (n diberikan oleh pengguna) di mana jumlah setiap separuh adalah sama. Sebagai contoh, jika nombor adalah 10001 di sini 10 dan 01 adalah sama kerana jumlah mereka adalah sama, dan mereka berada dalam bahagian yang berbeza. Di sini kita akan menjana semua nombor jenis itu.
Algoritma
genAllBinEqualSumHalf(n, left, right, diff)
kiri dan kanan pada mulanya kosong, diff adalah memegang perbezaan antara kiri dan kanan
Begin if n is 0, then if diff is 0, then print left + right end if return end if if n is 1, then if diff is 0, then print left + 0 + right print left + 1 + right end if return end if if 2* |diff| <= n, then if left is not blank, then genAllBinEqualSumHalf(n-2, left + 0, right + 0, diff) genAllBinEqualSumHalf(n-2, left + 0, right + 1, diff-1) end if genAllBinEqualSumHalf(n-2, left + 1, right + 0, diff + 1) genAllBinEqualSumHalf(n-2, left + 1, right + 1, diff) end if End
Contoh
#include <bits/stdc++.h> using namespace std; //left and right strings will be filled up, di will hold the difference between left and right void genAllBinEqualSumHalf(int n, string left="", string right="", int di=0) { if (n == 0) { //when the n is 0 if (di == 0) //if diff is 0, then concatenate left and right cout << left + right << " "; return; } if (n == 1) {//if 1 bit number is their if (di == 0) { //when difference is 0, generate two numbers one with 0 after left, another with 1 after left, then add right cout << left + "0" + right << " "; cout << left + "1" + right << " "; } return; } if ((2 * abs(di) <= n)) { if (left != ""){ //numbers will not start with 0 genAllBinEqualSumHalf(n-2, left+"0", right+"0", di); //add 0 after left and right genAllBinEqualSumHalf(n-2, left+"0", right+"1", di-1); //add 0 after left, and 1 after right, so difference is 1 less } genAllBinEqualSumHalf(n-2, left+"1", right+"0", di+1); //add 1 after left, and 0 after right, so difference is 1 greater genAllBinEqualSumHalf(n-2, left+"1", right+"1", di); //add 1 after left and right } } main() { int n = 5; genAllBinEqualSumHalf(n); }
输出
100001 100010 101011 110011 100100 101101 101110 110101 110110 111111
Atas ialah kandungan terperinci Untuk semua nombor perduaan yang mungkin panjang n, jumlah dua bahagian adalah sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Alamat IP terdiri daripada nombor binari 32 atau 128-bit. Alamat IP ialah format alamat bersatu yang disediakan oleh protokol IP Terdapat dua jenis alamat IP: 1. Alamat IPv4, yang terdiri daripada nombor binari 32-bit, dinyatakan dalam tatatanda perpuluhan bertitik, dibahagikan kepada lapan bit, iaitu empat 0. ~255 Nombor perpuluhan; 2. Alamat IPv6 terdiri daripada nombor perduaan 128-bit, dinyatakan dalam perenambelasan bertitik, dibahagikan kepada lapan bit, iaitu enam belas nombor perenambelasan dari 0x00 hingga 0xff.

Tiada had tetap untuk panjang tatasusunan dalam PHP, ia boleh dilaraskan secara dinamik mengikut saiz memori sistem. Dalam PHP, tatasusunan ialah struktur data yang sangat fleksibel yang boleh menyimpan sebarang bilangan elemen, dan setiap elemen boleh menjadi nilai apa-apa jenis, atau tatasusunan lain. Had panjang tatasusunan PHP terutamanya bergantung pada saiz memori sistem dan had memori konfigurasi PHP. Secara umumnya, jika memori sistem cukup besar dan had ingatan PHP cukup tinggi, panjang tatasusunan boleh menjadi sangat besar. Walau bagaimanapun, jika sistem anda kekurangan memori atau

Pertimbangkan contoh yang diberikan di bawah - Contoh input adalah seperti berikut: Input nombor binari: 10010001 Output adalah seperti berikut: 1's complement of 10010001 is 011011102 The complement of 10010001 is 01101111 Algorithm to's complement to an' Algoritma Rujukan kepada '2' Algoritma. diberi nombor nombor binari. Langkah 1 - Mulakan. Langkah 2 - Baca nombor binari pada masa jalan. Langkah 3 - Salin nombor binari ke strdp. Langkah 4-len:=strlen(str) Langkah 5-Untuk i=0 hingga len-1, jalankan Langkah 5.1-Jika str[i]=='1', maka Langkah 5.1.1-str[i]==' 0' Langkah 5.2-Jika tidak Langkah 5.2.1

Adakah terdapat had untuk panjang tatasusunan PHP? Perlukan contoh kod khusus Dalam PHP, panjang tatasusunan tidak tertakluk kepada had tetap, dan saiz tatasusunan boleh dilaraskan secara dinamik mengikut had sebenar memori sistem. Tatasusunan dalam PHP ialah tatasusunan dinamik, jadi ia boleh berkembang atau mengecut secara dinamik mengikut keperluan. Dalam PHP, tatasusunan ialah struktur data dipetakan tersusun, dan elemen tatasusunan boleh diakses menggunakan subskrip tatasusunan atau nilai kunci tatasusunan bersekutu. Mari lihat contoh kod khusus untuk menunjukkan sama ada panjang tatasusunan PHP adalah terhad. Pertama, kita boleh lulus kod berikut

Nombor binari diwakili dalam asas 2. Ia hanya menggunakan dua digit "0" dan "1". Setiap digit dalam nombor binari adalah sedikit. Contoh Nombor pelengkap dua nombor perduaan -01000101111 Nombor pelengkap kedua-duanya diperoleh dengan membalikkan digit nombor perduaan, iaitu menukar 1 kepada 0 dan 0 kepada 1. Pelengkap contoh 1'sComplementof101100=0100112 ialah pelengkap nombor binari tambah 1, iaitu pelengkap 1 + 1. Contoh 2’complementof101101is010011 Contoh kod untuk mencari satu dan dua kod pelengkap - #include<iostr

ipv6地址是由128位二进制数组成的。IPv6地址是以十六进制表示的二进制数,具有128位地址长度。一个IPv6的IP地址由8个地址节组成,每节包含16个地址位,总长度是16x8=128位。

Tujuan artikel ini adalah untuk melaksanakan program yang memaksimumkan jumlah panjang sepasang rentetan yang tidak mempunyai aksara biasa dalam tatasusunan tertentu. Mengikut definisi, rentetan ialah koleksi aksara. Pernyataan Masalah Laksanakan atur cara untuk memaksimumkan jumlah panjang sepasang rentetan yang tidak mempunyai aksara sepunya dalam tatasusunan tertentu. Contoh 1LetusconsidertheInputarray:a[]=["efgh","hat","fto","car","wxyz","fan"]Outputperoleh:8 Penerangan Tiada aksara biasa dalam rentetan "abcd" dan "wxyz ". Akibatnya, panjang gabungan dua rentetan ialah 4+4, iaitu bersamaan dengan 8, iaitu panjang terpanjang antara semua pasangan yang boleh dilaksanakan. Contoh 2Letu

Peranan dan maksud fungsi len ditafsirkan dari sudut yang berbeza Fungsi len adalah salah satu fungsi yang biasa digunakan dalam bahasa pengaturcaraan Python. Ia digunakan terutamanya untuk mengembalikan panjang atau bilangan elemen objek bekas (seperti rentetan, senarai, tuple, dll.). Fungsi mudah ini memainkan peranan yang sangat penting semasa menulis program, dan fungsi dan maknanya boleh ditafsirkan dari pelbagai sudut. Artikel ini akan menerangkan fungsi len dari perspektif prestasi, kebolehbacaan dan jenis bekas serta memberikan contoh kod khusus. 1. Perspektif prestasi Apabila memproses data berskala besar, prestasi program
