ホームページ  >  記事  >  Java  >  Javaの強い数

Javaの強い数

WBOY
WBOYオリジナル
2024-08-30 16:27:10284ブラウズ

強い数値とは、数値の各桁の階乗の加算として定義できる特別な数値であり、数値そのものと等しくなります。強い数値の概念をより深く理解するには、以下の例を見てください:

広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 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 + fat_n.
  • を使用して実行できます。
  • これで、最後の数字は必要なくなるので、「n」から削除できます。
  • 条件 n > になるまで、ステップ 3 からステップ 6 までのステップを繰り返します。 0は満足しています。
  • これにはループを使用できます。強い数値の状態を確認するために使用できます。 total == temp_n という条件が満たされている場合、指定された数値は強い数値であり、そうでない場合はそうではありません。

Java における強い数値の例

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 でなくなるまで、数値の mod または最後の桁を検索します。これが完了すると、数値をインクリメントして、その数値を fat_n に保存し、数値の階乗を求めます。合計または加算は、i<= lastdig の条件が満たされなくなるまで階乗が加算される while ループ内にありません。 「total」を追加し、fact_n が「temp_n」と等しくない場合、指定された数値は階乗ではありません。一方、合計とfact_nが同じ場合、記載されている数値は強力な数値です。

例 #2

強い数値を見つけるもう 1 つの方法は、強い数値を利用することです。ここの番号は、コマンド ライン パラメーターを使用してプログラムに渡すことができます。

コード:

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");
}
}

これは、その数値が強い数値かどうかを確認するもう 1 つの方法です。ここでは、コマンド ライン引数を使用して、実行時にユーザーからの入力を取得できます。ここでのロジックは同じですが、入力が実行時に引数として送信される点が異なります。このプログラムの出力は、数値が強いかどうかに応じて、YES または NO のいずれかになります。

出力:

Javaの強い数

ここでのプログラムは、2 つの数値が強い数値であるかどうかをチェックしています。ここでは、0 から 9 までのすべての数字の階乗を求めます。次に、isStrong 関数は、その数値が強いかどうかを検証します。 MOD が存在するまで、指定された数値のすべての桁をスキャンします。ここの main 関数は、precompute() 関数が適切な結果を与えているかどうかを検証します。ユーザーから 2 つの数値を受け取り、その数値が強い数値であるかどうかをチェックして提供します。 main 関数は最初に、各桁の階乗を計算する関数を呼び出します。次に、 isStrong() 関数は、各桁の階乗の合計をチェックします。また、それを計算し、結果をブール値 (true または false) で返します。基本的には、数値を渡すだけで、前述の出力どおりの結果が得られます。数値が強い場合は isStrong 関数によって true が返され、そうでない場合は false が返されます。

結論

強い数値とは、各桁の階乗の合計が数値そのものになる数値です。通常の Java 関数、またはブール値を使用する関数、または数値を引数として渡すだけで、強力な数値を識別できます。このロジックでは、mod、除算、加算などの単純な演算を使用します。

以上がJavaの強い数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。