Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหาจำนวนเต็มตั้งแต่ 1 ถึง n ซึ่งมีตัวเลข 0 และ 1 ใน C ++ เท่านั้น


สมมุติว่าเรามีตัวเลข n งานของเราคือการหาจำนวนเต็มตั้งแต่ 1 ถึง n ซึ่งมีตัวเลข 0 และ 1 เท่านั้น ดังนั้นถ้า n =15 ผลลัพธ์จะเป็น เป็นตัวเลข 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