Hãy xem xét chúng ta có một chữ số d và giới hạn trên n. chúng ta phải tìm tất cả các số có chứa d trong phạm vi từ 0 đến n. Vì vậy, nếu n =20 và chữ số là 3, thì các số sẽ là [3, 13].
Để giải quyết vấn đề này, chúng ta sẽ lấy mọi số dưới dạng chuỗi, sau đó nếu chữ số có trong chuỗi thì số đó sẽ được in ra, nếu không thì sẽ bị bỏ qua.
Ví 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); }
Đầu ra
3 13 23 30 31 32 33 34 35 36 37 38 39 43 53 63 73 83 93