找出 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP