Chúng ta được cho một số, gọi là num, và tổng số chữ số lưu trong biến nguyên, gọi là digi. Nhiệm vụ là tính số lượng các số n chữ số có thể tạo thành mà không chứa chữ số cho trước.
Đầu vào − n = 2, digit = 2
Đầu ra − đếm là 153
Giải thích − Số lượng tất cả các số 2 chữ số (n) không chứa chữ số 2 là 153 như 10, 11, 13, 14, 15, 16, 17, 18, 19, 30, 31, 33, 34,......., v.v.
Đầu vào − n = 3, digit = 3
Đầu ra − đếm là 2187
Giải thích − Số lượng tất cả các số 3 chữ số (n) không chứa chữ số 3 là 2187 như 10, 11, 13, 14, 15, 16, 17, 18, 19, 30, 31, 33, 34,......., v.v.
Phương pháp sử dụng trong chương trình dưới đây như sau
Nhập số 'n' và chữ số dưới dạng biến nguyên
Truyền các biến này cho hàm sẽ thực hiện phép đếm
Đặt hai biến min và max là giá trị mà 'n' có thể đạt đến. Ví dụ, số 2 chữ số bắt đầu từ giá trị nhỏ nhất 10 và kết thúc ở 99, tương tự, số 3 chữ số bắt đầu từ 100 đến 999.
Bắt đầu vòng lặp từ min đến max
Trong vòng lặp, bắt đầu while cho đến khi 'n' lớn hơn 0
Kiểm tra xem chữ số có xuất hiện hay không. Nếu có thì không thực hiện thao tác nào, nếu không có thì tăng đếm lên 1.
Ví dụ
#include<bits/stdc++.h> using namespace std; int count(int n, int digit){ int r =0; int count = 0; //tính min và max của số cho trước int min = (int)(pow(10, n-1)); int max = (int)(pow(10, n)); //bắt đầu vòng lặp đến max bắt đầu từ min for(int i=min; i<max; i++){ int a=i; int f=0; //khi a lớn hơn 0 while(a>0){ r=a%10; a=a/10; if(r==digit){ f++; } if(f==0){ count++; } } } return count; } int main(){ int n = 2, digit = 2; cout<<"Count of "<<n<< digit numbers not having a particular digit "<<digit<<" is : "<<count(n, digit); return 0; } Đầu ra
Nếu chúng ta chạy mã trên, chúng ta sẽ nhận được đầu ra sau −
Count of 2 digit numbers not having a particular digit 2 is :153