예를 들어 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