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

หาจำนวนจำนวนเต็มจาก 1 ถึง n ที่ประกอบด้วยเลข 0 และ 1 เท่านั้นใน C++

สมมติว่าเรามีตัวเลข n งานของเราคือหาจำนวนจำนวนเต็มจาก 1 ถึง n ซึ่งประกอบด้วยเลข 0 และ 1 เท่านั้น ดังนั้นถ้า n = 15 ผลลัพธ์จะเป็น 3 คือ 1, 10, 11

เพื่อแก้ปัญหานี้ เราจะสร้างจำนวนเต็มโดยใช้ 0 และ 1 ด้วยฟังก์ชันเรียกซ้ำ (Recursive) โค้ดต่อไปนี้จะช่วยให้เข้าใจได้ดีขึ้น

ตัวอย่าง

#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