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

Đếm số n chữ số chia hết cho số đã cho trong C ++


Chúng ta có hai phần tử, giả sử là d và num, nhiệm vụ là tìm các chữ số d chia hết cho num.

Nói một cách đơn giản, giả sử chúng ta đã đưa ra đầu vào là 2 trong d, vì vậy trước tiên chúng ta sẽ tìm tất cả các số có 2 chữ số, tức là từ 10-99 và sau đó tìm tất cả các số chia hết cho num.

Hãy để chúng tôi hiểu thêm về điều này với sự trợ giúp của các ví dụ -

Đầu vào - chữ số =2, num =12

Đầu ra - Đếm số có n chữ số chia hết cho số đã cho:8

Giải thích - Các số có 2 chữ số chia hết cho 12 là 12, 24, 36, 48, 60, 72, 84 và 96 nên có 8 số có 2 chữ số chia hết cho 12.

Đầu vào - chữ số =2, num =9

Đầu ra - Đếm số có n chữ số chia hết cho số đã cho - 10

Giải thích - Các số có 2 chữ số chia hết cho 9 là 18, 27, 36, 45, 54, 63, 72, 81, 90 và 99 nên có 10 số có hai chữ số chia hết cho 9.

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

  • Lấy chữ số và số phần tử làm đầu vào.

  • Gán một biến đếm là 0 để đếm số chữ số chia hết cho num.

  • Khai báo và đặt digi_first dưới dạng pow (10, chữ số - 1)

  • Khai báo và đặt digi_last thành pow (10, chữ số)

  • Bây giờ hãy khai báo và đặt d_first là digi_first% num và d_last là digi_last% num

  • Sau khi tìm thấy d_first và d_last, hãy đặt digi_first là (digi_first - d_first) + num và digi_last là digi_last - d_last

  • Bây giờ, hãy đặt số đếm thành ((digi_last - digi_first) / num + 1).

  • Trả lại và số lượng in.

Ví dụ

#include <cmath>
#include <iostream>
using namespace std;
int main(){
   int digit = 2 , num = 9;
   //store the count
   int count= 0 ;
   int digi_first = pow(10, digit - 1);
   int digi_last = pow(10, digit);
   int d_first = digi_first % num;
   int d_last = digi_last % num;
   digi_first = (digi_first - d_first) + num;
   digi_last = digi_last - d_last;
   count = ((digi_last - digi_first) / num + 1);
   cout<<"Count of n digit numbers divisible by given number: "<<count<<"\n";
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, chúng ta sẽ nhận được kết quả sau -

Count of n digit numbers divisible by given number: 10