非负整数的阶乘是所有小于或等于n的整数的乘积。例如,6的阶乘是6*5*4*3*2*1,即720。
null
递归:
// Java program to find factorial of given number class Test { // method to find factorial of given number static int factorial( int n) { if (n == 0 ) return 1 ; return n*factorial(n- 1 ); } // Driver method public static void main(String[] args) { int num = 5 ; System.out.println( "Factorial of " + num + " is " + factorial( 5 )); } } |
迭代解决方案:
// Java program to find factorial of given number class Test { // Method to find factorial of given number static int factorial( int n) { int res = 1 , i; for (i= 2 ; i<=n; i++) res *= i; return res; } // Driver method public static void main(String[] args) { int num = 5 ; System.out.println( "Factorial of " + num + " is " + factorial( 5 )); } } |
单线溶液(使用三元运算符):
// Java program to find factorial // of given number class Factorial { int factorial( int n) { // single line to find factorial return (n == 1 || n == 0 ) ? 1 : n * factorial(n - 1 ); } // Driver Code public static void main(String args[]) { Factorial obj = new Factorial(); int num = 5 ; System.out.println( "Factorial of " + num + " is " + obj.factorial(num)); } } // This code is contributed by Anshika Goyal. |
上述解决方案会导致小数字溢出。请参考 大数阶乘 这是一个适用于大量数据的解决方案。
请参阅完整的文章 一个数的阶乘程序 更多细节!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END