강한 숫자는 숫자 자체와 동일한 숫자의 각 자릿수에 계승을 추가하여 정의할 수 있는 특수 숫자입니다. 강한 숫자의 개념을 더 잘 이해하려면 아래 예를 살펴보십시오.
광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사145라는 숫자는 강력한 숫자입니다. 왜냐하면 이 숫자의 각 자릿수에 대한 계승값을 더하면 합이 145 그 자체인 숫자를 얻게 되기 때문입니다. 1! + 4! + 5! = 1 + 24 + 120 = 145.
이제 Java에서 숫자가 강력한 숫자인지 여부를 확인하는 논리를 살펴보겠습니다. 다음은 숫자가 강한 숫자인지 아닌지 확인하는 방법에 대한 설명입니다.
Java에서 강력한 숫자의 논리를 구현하는 것은 매우 쉽습니다. 아래에서 몇 가지 예를 살펴보겠습니다.
코드:
// Program in Java to check if a given number is a strong number or not import java.util.*; public class Main { public static void main(String[] args) { int n,i; int fact_n,lastdig; Scanner sc = new Scanner(System.in); System.out.print("\nEnter the number : " ); n = sc.nextInt(); int total = 0; int temp_n = n; while(n != 0) { i = 1; fact_n = 1; lastdig = n % 10; while(i <= lastdig) { fact_n = fact_n * i; i++; } total = total + fact_n; n = n / 10; } if(total == temp_n) System.out.println(temp_n + " is a strong number\n"); else System.out.println(temp_n + " is not a strong number\n"); System.out.println(); } }
출력:
위의 Java 프로그램에는 프로그램의 논리에서 논의된 모든 변수가 있습니다. 먼저 숫자가 0이 아닐 때까지 숫자의 모드 또는 마지막 숫자를 찾습니다. 이 작업이 완료되면 숫자를 증가시키고 이를 사실_n에 저장하여 숫자의 계승을 찾습니다. i<= lastdig의 조건이 충족되지 않을 때까지 계승이 추가되는 while 루프에 합계 또는 추가가 없습니다. 'total'을 추가하고fact_n이 'temp_n'과 같지 않으면 주어진 숫자는 계승이 아닙니다. 반면에 total과fact_n이 같다면 언급된 숫자는 s강수입니다.
강력한 숫자를 찾는 또 다른 방법은 강력한 숫자를 활용하는 것입니다. 여기에 있는 숫자는 명령줄 매개변수를 사용하여 프로그램에 전달할 수 있습니다.
코드:
public class Main { static int f[] = new int[10]; // Finding factorial for number 0 to 9 static void FirstCompute() { f[0] = f[1] = 1; for (int i = 2; i<10; ++i) f[i] = f[i-1] * i; } // If x is strong true is returned static boolean isStrong(int x) { int Sum_fact = 0; // Traverse through all digits of x. int temp_n = x; while (temp_n>0) { Sum_fact += f[temp_n%10]; temp_n /= 10; } return (Sum_fact == x); } // main function public static void main (String[] args) { // calling preCompute FirstCompute(); // first pass int x = 145; if(isStrong(x)) { System.out.println("Yes"); } else System.out.println("No"); // second pass x = 534; if(isStrong(x)) { System.out.println("Yes"); } else System.out.println("No"); } }
이것은 숫자가 강력한 숫자인지 아닌지를 알아내는 또 다른 방법입니다. 여기에서는 명령줄 인수를 사용하여 런타임 동안 사용자로부터 입력을 받을 수 있습니다. 여기서 논리는 동일하게 유지되지만, 입력이 런타임에 인수로 전송된다는 차이점이 있습니다. 이 프로그램의 출력은 숫자가 강한 숫자인지 아닌지에 따라 YES 또는 NO가 됩니다.
출력:
여기 프로그램은 두 숫자가 강한 숫자인지 아닌지 확인합니다. 여기에서는 0부터 9까지 모든 숫자의 계승을 찾습니다. 그런 다음 isStrong 함수는 숫자가 강한지 여부를 확인합니다. 모드가 존재할 때까지 주어진 숫자의 모든 숫자를 순회합니다. 여기서 주요 함수는 precompute() 함수가 적절한 결과를 제공하는지 확인합니다. 사용자로부터 두 개의 번호를 수락하여 해당 번호가 강력한 번호인지 여부를 확인하고 제공합니다. 메인 함수는 먼저 각 숫자의 계승을 계산하는 함수를 호출합니다. 그런 다음 isStrong() 함수는 각 숫자의 계승의 합을 확인합니다. 또한 이를 계산하여 true 또는 false인 부울 값으로 결과를 반환합니다. 기본적으로 숫자만 전달하면 언급된 출력에 따른 결과가 제공됩니다. isStrong 함수는 숫자가 강하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
강한 숫자는 각 숫자의 팩토리얼의 합이 숫자 자체인 숫자입니다. 일반 Java 함수, 부울 값을 사용하는 함수 또는 숫자를 인수로 전달하는 함수에서는 강력한 숫자를 식별할 수 있습니다. 논리는 모드, 나누기, 추가와 같은 간단한 작업을 사용합니다.
위 내용은 Java의 강력한 숫자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!