숫자 'n'이 주어지면 주어진 숫자가 강한 숫자인지 확인해야 합니다.
강한 숫자는 모든 숫자의 계승값의 합이 숫자 'n'과 같은 숫자입니다. 계승은 해당 숫자를 포함하여 해당 숫자보다 작은 모든 숫자를 곱한 결과이며 !(느낌표)로 표시됩니다. 예: 4! = 4x3x2x1 = 24.
따라서 숫자가 강한지 확인하려면 숫자의 각 비트를 추출해야 합니다. 예를 들어 숫자가 145인 경우 1, 4, 5를 추출한 다음 각 숫자인 1의 계승을 계산합니다. ! = 1, 4! = 24,5! =120.
이제 1 + 24 + 120을 더하면 145가 되는데, 이는 주어진 입력과 정확히 동일하므로 이 숫자가 강력하다고 말할 수 있습니다.
Input: n = 124 Output: No it is not a strong number Explanation: 1! + 2! + 4! = 27 which is not equal to n i.e, 124 Input: n = 145 Output: Yes it is a strong number Explanation: 1! + 4! + 5! = 145
문제를 해결하기 위해 아래에서 사용한 방법은 다음과 같습니다 −
우리는 −
START In Function int factorial(int r) Step1 -> Initialize int fact and set as 1 Step2-> Loop while r>1 Set fact as fact * r Decremnet r by 1 End Loop Step 3-> Return fact End Function factorial In Function int check(int n) Step 1-> Initialize int temp, rem and result, set result as 0 Step 2-> Set temp as n Step 3-> Loop while temp Set rem as temp % 10 Set result as result + factorial(rem) Set temp as temp/10 End loop Step 4-> If result == n then, Return 1 Step 5-> Else Return 0 End function check In main(int argc, char const *argv[]) Step 1-> Initialise and set n as 145 Step 2->If check(n) is valid then, Print "Yes it is a strong number” Step 3-> Else Print "no it is not a strong number” STOP
Live Demonstration
#include <stdio.h> int factorial(int r) { int fact = 1; while(r>1) { fact = fact * r; r--; } return fact; } int check(int n) { int temp, rem, result = 0; temp = n; while(temp) { rem = temp % 10; result = result + factorial(rem); temp = temp/10; } if (result == n) return 1; else return 0; } int main(int argc, char const *argv[]) { int n = 145; if (check(n)) printf("Yes it is a strong number</p><p>"); else printf("no it is not a strong number</p><p>"); return 0; }
위 코드를 실행하면 다음과 같은 출력이 생성됩니다 −
Yes it is a strong number
위 내용은 강력한 숫자를 확인하는 C 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!