在C++中,將一個二進制數的一位移除以獲得最大值
討論一個給定二進制數的問題。我們必須從中刪除一點,以便剩餘的數字應該是所有其他選項中的最大值,例如
Input : N = 1011 Output: 111 Explanation: We need to remove one bit so removing 0 bit will give a maximum number than removing any 1’s bit. 111 > 101, 011. Input: 111 Output: 11 Explanation: Since all the bits are 1 so we can remove any bit.
求解的方法
暴力破解法
暴力破解會給出最大的結果數,即透過一位一位去除,比較不同的結果,並獲得最大結果。
但是它可以使用一種高效方法,即,如果我們刪除最少的冗餘位元。
高效方法
高效率的方法對結果的影響最小。
首先,從右邊開始遍歷各位元。
搜尋 0 並將其在第一個計數器上刪除。
如果找不到 0,則刪除任何位元。
範例
高效率方法的C 程式碼
#include <bits/stdc++.h> using namespace std; int main(){ string str = "1011"; bool flag = false; int n = str.length(); // Initialising new array for char res[n - 1]; int j = 0; // traversing through the binary number from right. for (int i = 0; j < n - 1; i++) { // if 0 is found then skip it. if (str[i] == '0' && flag == false) { flag = true; continue; } else res[j++] = str[i]; } // printing the resulting string. cout << "Maximum number: " << res; return 0; }
輸出
Maximum number: 111
上述程式碼說明
使用標誌變量,以便只消除一個0。
-
初始化字元陣列 res 來儲存結果數。
循環將運行到 n-1,因為我們需要儲存比原始數字少一個元素。
循環將運行到 n-1。 p>
結論
在本教學中,我們討論了刪除一位後找到最大數字。我們討論了解決此問題的兩種方法。
我們也為此編寫了 C 程式碼,我們可以用任何其他語言(如 C、Java、Python 等)編寫這些程式碼。我們希望本教學對您有所幫助。
以上是在C++中,將一個二進制數的一位移除以獲得最大值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

小紅書這一APP上大家所能獲得資訊超多,這裡的功能服務多多,全都是能夠由用戶們自由的選擇進行操作的,完全根據自己的需求,選擇這裡的一些對應的功能操作,解決大家的一些問題,特別的方便,真的每一天都能夠為你們推薦出大量的這一些筆記,內容豐富,所涵蓋的範圍超廣泛,自由的選擇,無論想看這裡的哪一些內容的版塊,都是可以在這裡滿足大家,解決大家的一些問題,大家沒事的時候,都能夠自己嘗試著發佈各種的一些筆記,說不定大家都是有機會獲得大量的一些粉絲哦,那麼你們不想讓一些粉絲們進行關注的話,都能夠選擇移除這一

使用math.Max函數取得一組數中的最大值在數學和程式設計中,經常需要找出一組數中的最大值。在Go語言中,我們可以使用math套件中的Max函數來實現這個功能。本文將介紹如何使用math.Max函數來取得一組數中的最大值,並提供對應的程式碼範例。首先,我們需要導入math包。在Go語言中,導入套件可以使用import關鍵字,如下所示:import"mat

二進位演算法是一種基於二進制數的運算方法,其基本運算包括加法、減法、乘法和除法。除了基本運算外,二進位演算法還包括邏輯運算、位移運算等操作。邏輯運算包括與、或、非等操作,位移運算包括左移和右移操作。這些操作都有對應的規則和操作數的要求。

二進制數以1和0表示。 16位元的十六進位數係統為{0,1,2,3…..9,A(10),B(11),……F(15)}為了從二進位表示轉換為十六進位表示,位元串id被分組為4位元區塊,從最低有效側開始稱為半位元組。每個區塊都替換為相應的十六進制數字。讓我們看一個範例,以清楚地了解十六進制和二進制數字表示。 001111100101101100011101 3 E 5 B&nb

EDVAC的兩個重大的改進:一是採用二進制,二是完成了存貯程序,可以自動地從一個程序指令進到下一個程序指令,其作業可以透過指令自動完成。 「指令」包括資料和程序,把它們用碼的形式輸入到機器的記憶裝置中,即用記憶資料的同一記憶裝置存貯執行運算的命令,這就是所謂存貯程序的新概念。

jQuery如何移除元素的height屬性?在前端開發中,經常會遇到需要操作元素的高度屬性的需求。有時候,我們可能需要動態改變元素的高度,而有時候又需要移除元素的高度屬性。本文將介紹如何使用jQuery來移除元素的高度屬性,並提供具體的程式碼範例。在使用jQuery操作高度屬性之前,我們首先需要了解CSS中的height屬性。 height屬性用於設定元素的高度

Golang如何讀取二進位檔案?二進位檔案是以二進位形式儲存的文件,其中包含了電腦能夠識別和處理的資料。在Golang中,我們可以使用一些方法來讀取二進位文件,並將其解析成我們想要的資料格式。以下將介紹如何在Golang中讀取二進位文件,並給出具體的程式碼範例。首先,我們需要使用os包中的Open函數開啟二進位文件,這將會傳回一個文件物件。然後,我們可以使

電腦採用二進位的主要原因:1、電腦是由邏輯電路組成,邏輯電路通常只有兩個狀態,開關的接通與斷開,這兩種狀態剛好可以用「1」與「0」表示;2、二進位只使用0和1兩個數字,傳輸和處理時不易出錯,因而可以保障電腦具有很高的可靠性。
