Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 주어진 범위에서 'M'으로 나눌 수 있는 숫자 세기

<시간/>

세 개의 숫자 A,B,M이 주어집니다. A와 B는 숫자의 범위 [A,B]를 정의합니다. 목표는 A와 B 사이에서 M으로 나누어 떨어지는 숫자를 세는 것입니다.

i=A에서 M의 첫 번째 배수까지 시작합니다. i%M=0인 경우 카운트를 증분합니다. 이제 i<=대역 증가 카운트가 될 때까지 i를 증가시킵니다.

예를 들어 이해합시다.

입력

A=11,B=20, M=5

출력

Count of numbers divisible by M in given range: 2

설명

15와 20은 5로 나누어 떨어지고 범위 [11,20]에 있는 숫자일 뿐입니다.

입력

A=20, B=50, M=11

출력

Count of numbers divisible by M in given range: 3

설명

22,33,44는 11로 나누어지고 범위 [20,50]에 있는 숫자일 뿐입니다.

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • A,B 및 M을 정수로 간주합니다.
  • M으로 나눌 수 있는 함수(int a, int b, int m)는 A,B 및 M을 매개변수로 사용하고 A와 B 사이에서 M으로 나눌 수 있는 숫자의 개수를 반환합니다.
  • 초기 카운트를 0으로 합니다.
  • for 루프를 사용하여 i=A에서 i=B로 시작합니다. i를 1씩 증가시킵니다.
  • i%m=0이면 카운트를 증가시킵니다.
  • 마지막에 A와 B 사이의 m으로 나누어 떨어지는 수로 계산합니다.
  • 결과로 카운트를 반환합니다.

예시

// Program to count the numbers divisible by
// M in a given range
#include <bits/stdc++.h>
using namespace std;
int divisiblebyM(int a, int b, int m){
   int count = 0;
   // Running a loop from A to B and check
   // if a number is divisible by M.
   for (int i = a; i <= b;i++ ){
      if (i % m == 0){
          count++;
       }
   }
   return count;
}
int main(){
   // A and B define the range, M is the dividend
   int A = 3, B = 15, M = 4;
   cout<<"Numbers divisible by M in given range:"<<divisiblebyM(A, B, M) << endl;
   return 0;
}

출력

Numbers divisible by M in given range:3