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

更新於:2022年3月3日

268 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.