C++程式:計算表示n所需最小二進位制數字個數
假設我們有一個數字n。如果一個正整數的所有位數都是0或1,則稱其為二進位制十進位制數。例如,1001(一千零一)是二進位制十進位制數,而1021不是。從數字n出發,我們必須將n表示為一些(不一定不同)二進位制十進位制數的和。然後計算為此所需的最小二進位制十進位制數的個數。
因此,如果輸入為n = 121,則輸出為2,因為它可以表示為110 + 11或111 + 10。
步驟
為了解決這個問題,我們將遵循以下步驟:
ans := -1 while n > 0, do: ans := maximum of ans and (n mod 10) n := n / 10 return ans
示例
讓我們來看下面的實現以更好地理解:
#include <bits/stdc++.h>
using namespace std;
int solve(int n) {
int ans = -1;
while (n > 0) {
ans = max(ans, n % 10);
n /= 10;
}
return ans;
}
int main() {
int n = 121;
cout << solve(n) << endl;
}輸入
121
輸出
2
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP