Jadual Kandungan
Kaedah mencari penyelesaian
Kaedah brute force
Contoh
Output
Kaedah Cekap
Penjelasan kod di atas
Kesimpulan
Rumah pembangunan bahagian belakang C++ Cari nombor dengan hanya set bit antara indeks Lth dan Rth menggunakan C++

Cari nombor dengan hanya set bit antara indeks Lth dan Rth menggunakan C++

Aug 26, 2023 pm 09:45 PM
Operasi bit c pengaturcaraan saringan digital

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

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

Output

14
Salin selepas log masuk
Salin selepas log masuk

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

Output

14
Salin selepas log masuk
Salin selepas log masuk

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Gunakan C++ untuk menulis kod untuk mencari nombor bukan persegi Nth Gunakan C++ untuk menulis kod untuk mencari nombor bukan persegi Nth Aug 30, 2023 pm 10:41 PM

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,

Analisis ringkas operasi bit (pengendali bitwise) di Golang Analisis ringkas operasi bit (pengendali bitwise) di Golang Feb 24, 2023 pm 07:42 PM

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.

Algoritma penyongsangan untuk putaran kanan tatasusunan yang ditulis dalam C++ Algoritma penyongsangan untuk putaran kanan tatasusunan yang ditulis dalam C++ Sep 08, 2023 pm 08:17 PM

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

Dalam pengaturcaraan C, cari luas bulatan Dalam pengaturcaraan C, cari luas bulatan Aug 25, 2023 pm 10:57 PM

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=(

Ditulis dalam C++, cari bilangan empat kali ganda yang tiga sebutan pertamanya ialah jujukan aritmetik dan tiga sebutan terakhir ialah jujukan geometri. Ditulis dalam C++, cari bilangan empat kali ganda yang tiga sebutan pertamanya ialah jujukan aritmetik dan tiga sebutan terakhir ialah jujukan geometri. Aug 30, 2023 pm 02:09 PM

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

Cari bilangan pasangan unik dalam tatasusunan menggunakan C++ Cari bilangan pasangan unik dalam tatasusunan menggunakan C++ Sep 07, 2023 am 11:53 AM

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 −

Bagaimana untuk melaksanakan operasi bit menggunakan fungsi BitSet dalam Java Bagaimana untuk melaksanakan operasi bit menggunakan fungsi BitSet dalam Java Jun 26, 2023 pm 06:11 PM

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.

Tulis kod menggunakan C++ untuk mencari bilangan subarray dengan nilai minimum dan maksimum yang sama Tulis kod menggunakan C++ untuk mencari bilangan subarray dengan nilai minimum dan maksimum yang sama Aug 25, 2023 pm 11:33 PM

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,

See all articles