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

การนับจำนวนเต็ม m ที่หารด้วยจำนวนเต็ม n ใน C++ . ลงตัว


เราได้รับสองจำนวนเต็ม m และ n เป้าหมายคือการนับตัวเลข m ที่หารด้วย n ลงตัว

ถ้า m=1 ตัวเลขจะเป็น 0,1,2,3,4,5,6,7,8,9 และ n=3 แล้วจำนวนที่หารด้วย 3=0,3,6,9 นับ=4 ลงตัว

มาทำความเข้าใจกับตัวอย่างกัน

ป้อนข้อมูล − m=2, n=9

ผลผลิต − จำนวนหลัก m หารด้วย n − 10

คำอธิบาย − ระหว่าง 10 ถึง 99 ตัวเลขที่หารด้วย 9 ลงตัวคือ −

18, 27, 36, 45, 54, 63, 72, 81, 90, 99

ป้อนข้อมูล ม=3, n=300

ผลผลิต − จำนวน m หลักหารด้วย n:3

คำอธิบาย − ระหว่าง 100 ถึง 999 ตัวเลขหารด้วย 300 ลงตัวคือ -

300, 600, 900

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • เราใช้จำนวนเต็ม m และ n

  • คำนวณตัวเลข m-1 ที่ใหญ่ที่สุดเป็น num1

  • คำนวณจำนวนหลัก m ที่ใหญ่ที่สุดเป็น num2

  • ฟังก์ชัน findCount(int n, int L, int R) รับ n และ range ( ระหว่าง num1 และ num2 ) เป็นอินพุตและส่งกลับตัวเลขทั้งหมดในช่วงนั้นซึ่งหารด้วย n ลงตัว

  • นับเริ่มต้นเป็น 0

  • เริ่มจาก i=L ถึง i=R ถ้า i%n==0, นับเพิ่มขึ้น

  • ผลตอบแทนนับเป็นผลลัพธ์

ตัวอย่าง

#include<bits/stdc++.h>
using namespace std;
// Returns count of m digit numbers having n
// as divisor
int findCount(int n, int L, int R){
   int count=0;
   int i;
   for(int i=L;i<=R;i++){
      if(i%n==0)
         { count++; }
   }
   return count;
}
int main(){
   int M = 2, N = 9;
   int i;
   int num1 = 0; //largest m-1 digit no.
   for (i = 0; i < (M - 1); i++)
      num1 = (num1 * 10) + 9;
   int num2 = 0; //largest m digit no.
   for (i = 0; i < M; i++)
      num2 = (num2 * 10) + 9;
   cout<<"Count of M digit no.s divisible by N:"<<findCount(N,num1+1,num2);
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้:

Count of M digit no.s divisible by N:11