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

โปรแกรม C++ หาตัวเลขที่มีหลัก d ในช่วง 0 ถึง n

พิจารณาว่าเรามีหลัก d และขอบเขตบน n เราต้องหาตัวเลขทั้งหมดที่มี d อยู่ในช่วง 0 ถึง n ถ้า n = 20 และหลักคือ 3 ตัวเลขจะเป็น [3, 13]

เพื่อแก้ปัญหานี้ เราจะแปลงทุกตัวเลขเป็นสตริง แล้วถ้าหลัก d อยู่ในสตริง ให้พิมพ์ตัวเลขนั้น มิฉะนั้นข้ามไป

ตัวอย่าง

#include <iostream> 
using namespace std; 

int getAllNumWithDigit(int n, int d) { 
    string str = ""; 
    str += to_string(d); 
    char ch = str[0]; 
    string p = ""; 
    p += ch; 
    for (int i = 0; i <= n; i++) { 
        str = ""; 
        str = str + to_string(i); 
        int index = str.find(p); 
        if (i == d || index != -1) 
            cout << (i) << " "; 
    } 
} 

int main() { 
    int n = 100; 
    int d = 3; 
    getAllNumWithDigit(n, d); 
}

ผลลัพธ์

3 13 23 30 31 32 33 34 35 36 37 38 39 43 53 63 73 83 93