強數是一種特殊的數,可以定義為該數的每位數字的階乘相加,該數等於該數本身。為了更好地理解強數的概念,請看下面的範例:
廣告 該類別中的熱門課程 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 程式具有程式邏輯中討論的所有變數。它首先找到該數字的模或最後一位數字,直到該數字不為零。完成此操作後,它會增加數字並將其儲存在fact_n中以找出數字的階乘。求和或加法不是在 while 迴圈中進行階乘相加,直到不滿足 i<=lastdig 的條件。在新增“total”後,如果fact_n不等於“temp_n”,則給定的數字不是階乘。另一方面,如果總數和fact_n相同,那麼提到的數字就是強數字。
找到強數的另一種方法是利用強數。這裡的數字可以透過命令列參數傳遞給程式。
代碼:
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 函數驗證該數字是否強。它將遍歷給定數字的所有數字,直到 mod 存在。這裡的 main 函數驗證 precompute() 函數是否給出正確的結果。從用戶接受兩個號碼,這導致檢查並提供該號碼是否為強號碼。主函數首先呼叫函數,該函數計算每個數字的階乘。然後 isStrong() 函數檢查每個數字的階乘總和。它還計算它並以布林值傳回結果,該值是 true 或 false。總的來說,僅傳遞數字就會根據提到的輸出提供結果。如果數字強,isStrong 函數將傳回 true,如果不是,則傳回 false。
強數是指每個數字的階乘和就是該數本身的數。普通的 java 函數,或使用布林值的函數,或僅將數字作為參數傳遞,就可以識別強數字。此邏輯使用簡單的運算,如取模、除法和加法。
以上是Java 中的強數的詳細內容。更多資訊請關注PHP中文網其他相關文章!