


Cari nombor dengan hanya set bit antara indeks Lth dan Rth menggunakan C++
Dalam masalah yang diberikan, kita perlu mencari nilai nombor yang mempunyai semua bit set antara julat L, R yang diberikan. Contohnya −
Input: L = 1, R = 5 Output: 62 Explanation: representation of given L and R in binary form is 0..0111110 Input: L = 1, R = 4 Output: 30 Explanation: representation of given L and R in binary form is 0..11110
Kaedah mencari penyelesaian
Dalam masalah yang diberikan, kita akan membincangkan dua kaedah, kaedah brute force dan kaedah cekap.
Kaedah brute force
Dalam kaedah ini kita hanya mengulangi julat yang diberikan dan menjumlahkan semua kuasa 2 dalam julat yang diberikan dan itu akan menjadi jawapan kita.
Contoh
#include<bits/stdc++.h> using namespace std; int main() { int L = 1, R = 3; // the given range int ans = 0; // our answer for(int i = L; i <= R; i++) // traversing through the whole range ans += pow(2, i); // adding values to the answer. cout << ans << "\n"; }
Output
14
Dalam kaedah ini, kami hanya mengulangi julat dan hanya menambah kuasa 2 nombor dalam julat. Kerumitan masa program ini ialah O(N), dengan N ialah saiz julat kami. Tetapi kita boleh meningkatkan lagi kerumitan masa dengan menggunakan sedikit pengetahuan dalam masalah yang diberikan.
Kaedah Cekap
Dalam kaedah ini kita hanya akan membina formula untuk mengira jawapan kita.
Contoh
#include<bits/stdc++.h> using namespace std; int main() { int L = 1, R = 3; // the given range int ans = 0; // our answer for(int i = L; i <= R; i++) // traversing through the whole range ans += pow(2, i); // adding values to the answer. cout << ans << "\n"; }
Output
14
Dalam kaedah ini, kami merumuskan formula untuk mengira jawapan.
Penjelasan kod di atas
Seperti yang anda tahu kita perlu mengira nombor dengan set bit dalam julat tertentu, jadi dalam kaedah ini kita mencari nombor dari 0 hingga R dengan semua bit ditetapkan. Kami kemudiannya perlu menolak nombor dengan semua bit ditetapkan dari 1 hingga (L-1), jadi kami merumuskan pemerhatian ini. Kerumitan masa keseluruhan kod yang diberikan ialah O(1), iaitu kerumitan masa malar, yang bermaksud kita boleh mengira sebarang jawapan dalam masa tetap.
Kesimpulan
Artikel ini akan menulis program untuk "nombor dengan set bit hanya antara indeks L-th dan R-th". Kami juga mempelajari program C++ dan kaedah lengkap (biasa dan cekap) untuk menyelesaikan masalah ini. Kita boleh menulis program yang sama dalam bahasa lain seperti C, Java, Python dan lain-lain. Semoga artikel ini membantu anda.
Atas ialah kandungan terperinci Cari nombor dengan hanya set bit antara indeks Lth dan Rth menggunakan C++. 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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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

Kita semua tahu nombor yang bukan kuasa dua mana-mana nombor, seperti 2, 3, 5, 7, 8, dll. Terdapat N nombor bukan persegi, dan adalah mustahil untuk mengetahui setiap nombor. Jadi, dalam artikel ini, kami akan menerangkan segala-galanya tentang nombor tanpa kuasa dua atau bukan kuasa dua dan cara untuk mencari nombor bukan kuasa dua N dalam C++. Nombor bukan kuasa dua ken Jika nombor ialah kuasa dua integer, maka nombor itu dipanggil kuasa dua sempurna. Beberapa contoh nombor kuasa dua sempurna ialah -1isquareof14issquareof29issquareof316issquareof425issquareof5 Jika nombor bukan kuasa dua mana-mana integer, maka nombor itu dipanggil bukan kuasa dua. Sebagai contoh, 15 nombor bukan kuasa dua yang pertama ialah -2,3,5,6,

Pada zaman dahulu apabila memori komputer mahal dan kuasa pemprosesan terhad, menggunakan operasi bit gaya penggodam untuk memproses maklumat adalah cara yang diutamakan (dan dalam beberapa kes satu-satunya cara). Sehingga hari ini, penggunaan langsung operasi bit masih merupakan bahagian penting dalam banyak bidang pengkomputeran, seperti pengaturcaraan sistem peringkat rendah, pemprosesan grafik, kriptografi, dll.

Dalam artikel ini, kita akan mempelajari tentang algoritma pembalikan untuk memutar tatasusunan yang diberikan ke kanan dengan elemen k, contohnya −Input:arr[]={4,6,2,6,43,7,3,7}, k= 4Output:{43,7,3,7,4,6,2,6}Penjelasan:Pusingeachelementofarrayby4-elementtotherightmemberi{43,7,3,7,4,6,2,6}.Input:arr[]= {8 ,5,8,2,1,4,9,3},k=3Output:{4,9,3,8,5,8,2,1} Cari penyelesaian

Bulatan ialah rajah tertutup. Semua titik pada bulatan adalah sama jarak dari titik di dalam bulatan. Titik tengah dipanggil pusat bulatan. Jarak dari satu titik ke pusat bulatan dipanggil jejari. Luas ialah perwakilan kuantitatif bagi rentang dimensi bagi rajah tertutup. Luas bulatan ialah kawasan yang tertutup dalam dimensi bulatan. Formula untuk mengira luas bulatan, Luas=π*r*r Untuk mengira luas, kami memberikan jejari bulatan sebagai input, kami akan menggunakan formula untuk mengira luas, algoritma LANGKAH1: Takeradiusasinputfromtheuserusingstdinput.STEP2 : Kirakaluas bulatan, luas=(

Dalam artikel ini kami akan menerangkan semua cara yang mungkin untuk mencari kuarteron, menggunakan A.P. untuk 3 sebutan pertama dan G.P. untuk 3 sebutan terakhir. Pertama, kami akan menerangkan definisi asas janjang aritmetik (A.P.) dan janjang geometri (G.P.). Kemajuan Aritmetik (A.P.) - Ia adalah urutan nombor di mana perbezaan sepunya (d) adalah sama atau malar, bermakna perbezaan dua nombor berturut-turut adalah malar. Contohnya: 1,3,5,7,9|d=2 Kemajuan Geometrik (G.P.) - Ini ialah jujukan nombor di mana nisbah sepunya (r) adalah sama, yang bermaksud kita boleh mendarab nombor sebelumnya dengan tetap nombor. Contohnya: 3, 6, 12, 24, ....|r=2 Dalam masalah ini, kita perlu menentukan berapa banyak dalam array arr[] bagi N integer

Kami memerlukan pengetahuan yang betul untuk mencipta beberapa pasangan unik dalam sintaks tatasusunan C++. Semasa mencari bilangan pasangan unik, kami mengira semua pasangan unik dalam tatasusunan yang diberikan iaitu semua pasangan yang mungkin boleh dibentuk di mana setiap pasangan harus unik. Contohnya -Input:array[]={5,5,9}Output:4Explanation:Thenumberofalluniquepairsare(5,5),(5,9),(9,5)and(9,9).Input:array[] = {5,4,3,2,2}Output:16 Cara Mencari Penyelesaian Terdapat dua cara untuk menyelesaikan masalah ini, iaitu −

BitSet ialah kelas dalam Java yang digunakan untuk operasi bit. BitSet boleh dianggap sebagai tatasusunan yang terdiri daripada bit binari, dan setiap bit binari hanya boleh 0 atau 1. BitSet menyediakan satu siri kaedah untuk melaksanakan operasi bit, termasuk menetapkan, mengosongkan, membalikkan, mendapatkan, dll. Sangat mudah untuk menggunakan BitSet untuk melaksanakan operasi bit dalam Java Mari perkenalkan langkah operasi khusus di bawah. 1. Cipta objek BitSet Objek BitSet boleh dibuat dalam dua cara: 1. Cipta objek BitSet menggunakan nilai lalai.

Dalam artikel ini, kami akan menggunakan C++ untuk menyelesaikan masalah mencari bilangan subarray yang nilai maksimum dan minimumnya adalah sama. Berikut ialah contoh masalah −Input:array={2,3,6,6,2,4,4,4}Output:12Penjelasan:{2},{3},{6},{6}, {2 },{4},{4},{4},{6,6},{4,4},{4,4}dan{4,4,4}arethesubarraysyang boleh dibentuk denganmaksimumdanminimumelemensama.Input:array={3, 3, 1,5,
