ホームページ >Java >&#&チュートリアル >Javaの特別な番号
Java の特別な数値は、桁の階乗の合計が数値自体に等しい数値です。 N 桁の数字を指定できます。プログラムはまず数値を対応する桁に分解し、階乗を計算する必要があります。それが完了したら、個別に計算された階乗の合計を加算する必要があります。合計が元の番号と一致する場合、その番号は特別な番号として呼び出されます。プログラムの実行中、係数の概念と各数値の階乗を計算する Math.fact() を使用して、数字とその階乗が計算されます。この記事では、特別な番号かどうかを4桁の数字まで調べていきます。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
数学的には、数値の個々の桁の階乗の合計が元の数値とどのように一致するかを示さなければなりません。数値の例の 1 つは 145 です。
145= 1! +4! +5!
この記事では、それらが機能することや、2 桁または 3 桁の数字であるその他の特別な番号についても説明します。 Java には、このプログラムを実行できる多くのプラットフォームがあります。この記事では、BlueJ プラットフォームでのプログラムの動作を確認します。私たちが知っている特別な番号が 4 つあります。 1、2、145、40585。
このプログラムでは、数値を入力し、その数値が特別かどうかを確認します。桁の階乗の合計が元の数値と等しいかどうかを間接的にチェックします。
コード:
//Java program to check if a number // is a special number import java.util.*; import java.io.*; class Special { // function to calculate the factorial // of any number using while loop static int factorial(int n) { int fact = 1; while (n != 0) { fact = fact * n; n--; } return fact; } // function to Check if number is Special static boolean isSpecial(int n) { int sum = 0; int t = n; while (t != 0) { // calculate factorial of last digit // of temp and add it to sum sum += factorial(t % 10); // replace value of t by t/10 t = t / 10; } // Check if number is Special return (sum == n); } // Driver code public static void main(String[] args)throws IOException { BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter the number to check if it is Special"); int n = Integer.parseInt(br.readLine()); if (isSpecial(n)) System.out.println("YES- The number is a special number"); else System.out.println("NO- The number is not a special number"); } }
ここで、番号として 145 を確認し、その他の番号として 40585 を確認します。このコード部分を使用して、数値 145、1、および 2 をチェックします。他のプログラムでは、数値 40585 を確認し、プログラムにインストールできるループに別の方法を使用します。ここで、上に示したプログラムのさまざまな出力を見てみましょう。出力は番号 1、2、25、および 145 に対して生成されます。
出力:
このコーディング例では、for ループを使用してプログラムを実行する方法を見ていきます。以前のプログラムは、while ループを使用して数値の階乗を計算していました。 for a ループを使用して階乗を計算する方法のコード例を以下に示します。
コード:
//Java program to check if a number // is a special number import java.util.*; import java.io.*; class Special { // function to calculate the factorial // of any number using for loop static int factorial(int n) { int fact = 1; for (int i=1;i<=n;i++) { fact = fact * i; ; } return fact; } // function to Check if number is Special static boolean isSpecial(int n) { int sum = 0; int t = n; while (t != 0) { // calculate factorial of last digit // of temp and add it to sum sum += factorial(t % 10); // replace value of t by t/10 t = t / 10; } // Check if number is Special return (sum == n); } // Driver code public static void main(String[] args)throws IOException { BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter the number to check if it is Special"); int n = Integer.parseInt(br.readLine()); if (isSpecial(n)) System.out.println("YES- The number is a special number"); else System.out.println("NO- The number is not a special number"); } }
この番号145と40585では、両方の特別な番号が1つになるための前提条件を満たしています。したがって、数値は両方とも出力に表示されている特別な数値であることがわかります。
出力:
この記事のコードは非常に便利で、BlueJ プラットフォーム上で簡単に print ステートメントを確認するために使用できます。階乗の概念が登場するので、数値階乗に関連した概念を持つことができます。最初の N 項の階乗の合計 (N>5 の場合) の最後の桁は、それ以降は常に 0 になるため、常に 3 になります。また、数値の階乗を検討するときは常に、数値の小数や分数の場合には通常は使用されません。したがって、階乗プログラムで数値を使用するには、正の整数のみを使用する必要があります。プログラムに端数が入ると、プログラムは終了します。特定の大きな階乗における 10 の数を計算によって計算することもできます。それについては別の記事で説明します。
この記事では、特別な数字または一般的なクリシュナムルシー数字という主に 4 つの数字を見てきました。したがって、階乗に関する数値の基本的な構造と動作がわかります。番号 1、2、4、および 40585 が、互いに同じ特性を持つ特別な番号であることを確認します。
以上がJavaの特別な番号の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。