Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm số có chữ số đơn vị k trong phạm vi đã cho trong C ++

Chúng tôi được cung cấp một khoảng [đầu tiên, cuối cùng]. Mục đích là để tìm số lượng các số có chữ số đơn vị k và nằm giữa phạm vi [đầu tiên, cuối cùng].

Chúng tôi sẽ làm điều này bằng cách chuyển từ i =đầu tiên đến i =cuối cùng. Đối với mỗi số, tôi so sánh chữ số hàng đơn vị của nó với chữ số k, nếu chúng bằng nhau thì số lượng tăng lên.

Hãy cùng hiểu với các ví dụ.

Đầu vào - đầu tiên =8 cuối cùng =40, k =8

Đầu ra - Đếm các số có chữ số hàng đơn vị k - 4

Giải thích -

Numbers between 8 and 40 with unit digit = 8
8,18, 28, 38

Đầu vào - đầu tiên =100 cuối cùng =200, k =9

Đầu ra - Đếm các số có chữ số hàng đơn vị k - 10

Giải thích -

Numbers between 100 and 200 with unit digit = 9
109, 119, 129, 139, 149, 159, 169, 179, 189, 199.
Total:10

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Chúng tôi lấy hai số nguyên đầu tiên và cuối cùng để xác định phạm vi [đầu tiên, cuối cùng].

  • Hàm getCount (int fst, int lst, int k) nhận các biến phạm vi và k và trả về tổng số các số giữa fst và lst và có chữ số hàng đơn vị là k.

  • Lấy số lượng ban đầu là 0.

  • Sử dụng vòng lặp for bắt đầu từ i =fst đến i =lst, với mỗi tôi tính chữ số hàng đơn vị là ldigit =i% 10.

  • Nếu ldigit ==k, số gia tăng.

  • Kết quả là số lượt trả lại.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int getCount(int fst,int lst,int k){
   int count=0;
   for(int i=fst;i<=lst;i++){
      int ldigit=i%10; //to get last digit
      if(ldigit==k) //if both are equal increment count
         { ++count; }
   }
   return count;
}
int main(){
   int first = 5, last = 30;
   int K=5;
   cout<<"Numbers with unit digit K in range:"<<getCount(first, last, K);
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Numbers with unit digit K in range:3