>  기사  >  Java  >  Java의 강력한 숫자

Java의 강력한 숫자

WBOY
WBOY원래의
2024-08-30 16:27:10518검색

강한 숫자는 숫자 자체와 동일한 숫자의 각 자릿수에 계승을 추가하여 정의할 수 있는 특수 숫자입니다. 강한 숫자의 개념을 더 잘 이해하려면 아래 예를 살펴보십시오.

광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사

145라는 숫자는 강력한 숫자입니다. 왜냐하면 이 숫자의 각 자릿수에 대한 계승값을 더하면 합이 145 그 자체인 숫자를 얻게 되기 때문입니다. 1! + 4! + 5! = 1 + 24 + 120 = 145.

이제 Java에서 숫자가 강력한 숫자인지 여부를 확인하는 논리를 살펴보겠습니다. 다음은 숫자가 강한 숫자인지 아닌지 확인하는 방법에 대한 설명입니다.

  • 사용자가 정의한 숫자나 숫자를 사용자로부터 입력받습니다. 이 숫자를 사용자 정의 변수에 저장하십시오. 이제 이 숫자를 다른 임시 사용자 정의 변수에 복사하십시오. 이 변수는 계산 목적으로 사용됩니다. 사용자 정의 변수 이름은 'n', 임시 변수 이름은 'temp_n'으로 지정할 수 있습니다.
  • 이제 계승 숫자의 합을 저장할 또 다른 변수를 초기화합니다. 이 변수의 이름은 'total'로 지정할 수 있습니다.
  • 주어진 숫자 'n'의 마지막 숫자도 찾아야 합니다. 이 결과를 결과를 저장할 변수(예: 'lastdig = n % 10')에 저장합니다.
  • 이제 'lastdig'의 팩토리얼을 찾을 수 있습니다. 이제 이 숫자의 팩토리얼을 저장하고 이름을 'fact_n'으로 지정할 수 있습니다.
  • 이 작업이 완료되면 '합계'에 계승값을 추가할 수 있습니다. 이는 total = total +fact_n을 사용하여 수행할 수 있습니다.
  • 이제 더 이상 필요하지 않으므로 'n'에서 마지막 숫자를 제거할 수 있습니다.
  • 이제 n > 조건이 충족될 때까지 3단계부터 6단계까지 반복합니다. 0 만족합니다.
  • 이를 위해 루프를 사용할 수 있습니다. 강한 숫자의 상태를 확인하는 데 사용할 수 있습니다. total == temp_n 조건이 충족되면 주어진 숫자는 강한 숫자이고 그렇지 않으면 그렇지 않습니다.

자바의 강력한 숫자의 예

Java에서 강력한 숫자의 논리를 구현하는 것은 매우 쉽습니다. 아래에서 몇 가지 예를 살펴보겠습니다.

예시 #1

코드:

// 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의 강력한 숫자

위의 Java 프로그램에는 프로그램의 논리에서 논의된 모든 변수가 있습니다. 먼저 숫자가 0이 아닐 때까지 숫자의 모드 또는 마지막 숫자를 찾습니다. 이 작업이 완료되면 숫자를 증가시키고 이를 사실_n에 저장하여 숫자의 계승을 찾습니다. i<= lastdig의 조건이 충족되지 않을 때까지 계승이 추가되는 while 루프에 합계 또는 추가가 없습니다. 'total'을 추가하고fact_n이 'temp_n'과 같지 않으면 주어진 숫자는 계승이 아닙니다. 반면에 total과fact_n이 같다면 언급된 숫자는 s강수입니다.

예시 #2

강력한 숫자를 찾는 또 다른 방법은 강력한 숫자를 활용하는 것입니다. 여기에 있는 숫자는 명령줄 매개변수를 사용하여 프로그램에 전달할 수 있습니다.

코드:

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가 됩니다.

출력:

Java의 강력한 숫자

여기 프로그램은 두 숫자가 강한 숫자인지 아닌지 확인합니다. 여기에서는 0부터 9까지 모든 숫자의 계승을 찾습니다. 그런 다음 isStrong 함수는 숫자가 강한지 여부를 확인합니다. 모드가 존재할 때까지 주어진 숫자의 모든 숫자를 순회합니다. 여기서 주요 함수는 precompute() 함수가 적절한 결과를 제공하는지 확인합니다. 사용자로부터 두 개의 번호를 수락하여 해당 번호가 강력한 번호인지 여부를 확인하고 제공합니다. 메인 함수는 먼저 각 숫자의 계승을 계산하는 함수를 호출합니다. 그런 다음 isStrong() 함수는 각 숫자의 계승의 합을 확인합니다. 또한 이를 계산하여 true 또는 false인 부울 값으로 결과를 반환합니다. 기본적으로 숫자만 전달하면 언급된 출력에 따른 결과가 제공됩니다. isStrong 함수는 숫자가 강하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

결론

강한 숫자는 각 숫자의 팩토리얼의 합이 숫자 자체인 숫자입니다. 일반 Java 함수, 부울 값을 사용하는 함수 또는 숫자를 인수로 전달하는 함수에서는 강력한 숫자를 식별할 수 있습니다. 논리는 모드, 나누기, 추가와 같은 간단한 작업을 사용합니다.

위 내용은 Java의 강력한 숫자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.