強い数値とは、数値の各桁の階乗の加算として定義できる特別な数値であり、数値そのものと等しくなります。強い数値の概念をより深く理解するには、以下の例を見てください:
広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 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 でなくなるまで、数値の mod または最後の桁を検索します。これが完了すると、数値をインクリメントして、その数値を fat_n に保存し、数値の階乗を求めます。合計または加算は、i<= lastdig の条件が満たされなくなるまで階乗が加算される while ループ内にありません。 「total」を追加し、fact_n が「temp_n」と等しくない場合、指定された数値は階乗ではありません。一方、合計とfact_nが同じ場合、記載されている数値は強力な数値です。
強い数値を見つけるもう 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 のいずれかになります。
出力:
ここでのプログラムは、2 つの数値が強い数値であるかどうかをチェックしています。ここでは、0 から 9 までのすべての数字の階乗を求めます。次に、isStrong 関数は、その数値が強いかどうかを検証します。 MOD が存在するまで、指定された数値のすべての桁をスキャンします。ここの main 関数は、precompute() 関数が適切な結果を与えているかどうかを検証します。ユーザーから 2 つの数値を受け取り、その数値が強い数値であるかどうかをチェックして提供します。 main 関数は最初に、各桁の階乗を計算する関数を呼び出します。次に、 isStrong() 関数は、各桁の階乗の合計をチェックします。また、それを計算し、結果をブール値 (true または false) で返します。基本的には、数値を渡すだけで、前述の出力どおりの結果が得られます。数値が強い場合は isStrong 関数によって true が返され、そうでない場合は false が返されます。
強い数値とは、各桁の階乗の合計が数値そのものになる数値です。通常の Java 関数、またはブール値を使用する関数、または数値を引数として渡すだけで、強力な数値を識別できます。このロジックでは、mod、除算、加算などの単純な演算を使用します。
以上がJavaの強い数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。