找出 1 到 n 之間僅包含數字 0 和 1 的整數數目(C++)


假設我們有一個數字 n。我們的任務是找出 1 到 n 之間僅包含數字 0 和 1 的整數數目。因此,如果 n = 15,則輸出將為 3。因為數字是 1、10、11

為了解決此問題,我們將使用遞迴函式使用 0 和 1 建立整數。以下程式碼將幫助我們更好地理解這一點。

示例

 線上演示

#include<iostream>
using namespace std;
int numberOfValues(int p, int n) {
   if (p > n)
      return 0;
   return 1 + numberOfValues(p * 10, n) + numberOfValues(p * 10 + 1, n);
}
int main() {
   int n = 120;
   cout << "Number of values using 0s and 1s: " << numberOfValues(1, n);
}

輸出

Number of values using 0s and 1s: 7

更新日期:2019 年 12 月 19 日

154 次訪問

開啟您的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.