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

C++에서 0이 아닌 모든 숫자로 나눌 수 있는 범위의 숫자 계산

<시간/>

숫자 범위를 정의하기 위해 두 개의 숫자 START 및 END가 제공됩니다. 목표는 [START,END] 범위에서 0이 아닌 모든 숫자로 나눌 수 있는 모든 숫자를 찾는 것입니다. START에서 END까지 숫자를 탐색하여 이를 수행하고 각 숫자에 대해 while 루프를 사용하여 숫자가 0이 아닌 모든 숫자로 나눌 수 있는지 확인합니다. 예인 경우 카운트를 증가시킵니다.

예를 들어 이해합시다.

입력

START=10 END=20

출력

0이 아닌 모든 숫자로 나눌 수 있는 숫자:14

설명

숫자 10, 11, 12, 15, 20은 0이 아닌 모든 숫자로 나눌 수 있습니다.

입력

START=100 END=200

출력

0이 아닌 모든 숫자로 나눌 수 있는 숫자:25

설명

다음은 0이 아닌 모든 숫자로 나눌 수 있는 숫자 목록입니다. 100 101 102 104 105 110 111 112 115 120 122 124 126 128 132 135 1540 144 1810 2 15 

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

  • 정수 START 및 END를 범위 변수로 사용합니다.

  • 함수 divisiblebyDigits(int start, int end)는 범위 변수를 사용하고 0이 아닌 모든 숫자로 나눌 수 있는 숫자의 개수를 반환합니다.

  • 이러한 숫자에 대해 초기 변수 개수를 0으로 간주합니다.

  • 변수 플래그를 0으로 사용

  • for 루프를 사용하여 숫자 범위를 탐색합니다. i=시작에서 i=끝

  • 이제 각 숫자 num=i에 대해 while 루프를 사용하여 number가>0인지 확인합니다.

  • 숫자=num%10을 계산합니다. digit>0이고 i%digit==0이면 플래그=1을 설정합니다. 그렇지 않으면 플래그=0이고 중단됩니다. 다음 숫자를 확인하려면 num=num/10을 줄이세요.

  • 0이 아닌 모든 숫자가 i를 완전히 나누면 플래그는 1입니다. 카운트를 증가시킵니다.

  • 모든 루프의 끝에서 count는 0이 아닌 숫자로 나눌 수 있는 총 숫자를 갖게 됩니다.

  • 카운트를 결과로 반환합니다.

#include 네임스페이스 std;int divisiblebyDigits(int start, int end){ int count =0; 정수 플래그 =0; for (int i =시작; i <=끝; i++){ int num=i; 동안(숫자>0){ 정수 숫자=숫자%10; if(digit>0){ if(i%digit==0) { 플래그=1; } //플래그 설정 else{ 플래그=0; // 설정되지 않은 플래그 break; } } 숫자=숫자/10; } if(flag==1) //0이 아닌 모든 숫자로 나눌 수 있음 { count++; //cout< 

출력

위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -

0이 아닌 모든 숫자로 나눌 수 있는 숫자:14