找出 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
广告