예를 들어 N이라는 숫자가 주어지고 작업은 숫자 N을 나누는 숫자에서 해당 숫자의 개수를 찾는 것입니다.
기억해야 할 점
-
숫자가 0이면 무시해야 합니다. 즉, 0에 대해 카운트가 증가하지 않습니다.
-
숫자가 두 번 나타나고 숫자를 나누는 경우 개수는 숫자 발생에 따라 달라집니다. 예를 들어, 숫자 2240이 주어지고 이 숫자에서 0을 제외한 모든 숫자는 숫자를 나누고 2가 두 번 발생하면 숫자 2에 대해 2가 됩니다.
입력 - 숫자 =2240
출력 - 개수는 3입니다.
설명 − 숫자를 숫자로 나누면 2, 2, 4, 0이 됩니다. 이제 2가 2240을 나누는지 확인하고 예인 경우 개수를 늘립니다. 그렇지 않으면 다음 숫자로 이동합니다. 이 숫자에서 2, 2, 4는 숫자 2240을 나눕니다. 3이고 모든 경우에 숫자 0을 무시합니다.
입력 - 숫자 =755
출력 - 개수는 2입니다.
설명 − 숫자를 숫자로 나누면 7, 5, 5가 됩니다. 이제 7이 예인 경우 755를 나누는지 확인하고 개수를 늘리면 다음 숫자로 이동합니다. 이 숫자에서 5, 5는 숫자 755를 나누므로 개수는 2가 되고 개수는 2가 됩니다. 모든 경우에 숫자 0 무시
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
정수 변수에 숫자를 입력합니다. num
-
num이 0보다 클 때까지 루프 시작
-
루프 내에서 숫자를 숫자로 나누고 결과를 변수에 계속 저장합니다(예:rem
). -
rem이 숫자를 나누는지 확인하고 yes이면 count 변수의 값을 1씩 늘리고 그렇지 않으면 count 변수의 값을 늘리지 마십시오.
-
그리고 이 check 문은 0을 무시해야 하므로 rem이 0보다 클 때 적용됩니다.
예
#include <bits/stdc++.h> using namespace std; int count(int num){ int a=num; int count=0,rem; while(a>0){ rem=a%10; if(rem > 0){ if(num%rem==0){ count++; } } a=a/10; } return count; } int main(){ int num = 2240; cout<<"Count of digits in given number "<<num<<" which divide N are: "<<count(num); return 0; }
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다. -
Count of digits in given number 2240 which divide N are: 3