java 阶乘 递归算法 超、凢脫俗 2022-08-18 00:42 169阅读 0赞 package pm; import java.math.BigInteger; /\* \* 编写程序求1!+2!+.........30!的和并显示(使用递归算法) \*/ public class ElevenDemo \{ public static void main(String\[\] args) \{ long num = 30; long sum = 0; for(int i=1; i<=num; i++) \{ sum += method(i); \} System.out.println("1! + 2! + ……+ 30! = " + sum); //当num的值较大时,使用BigInteger进行求解,test(); // test(); \} private static long method(long num) \{ if(num > 1) \{ return num \* (method(num - 1)); \} else \{ return 1; \} \} private static BigInteger one = new BigInteger("1"); private static BigInteger method2(BigInteger n) \{ if(n.compareTo(one) > 0) \{ return n.multiply(method2(n.subtract(one))); \} return one; \} public static void test() \{ int num = 30; BigInteger sum = new BigInteger("0"); for(int i=1; i<num; i++) \{ sum = sum.add(method2(new BigInteger(i + ""))); \} System.out.println("1! + 2! + ……+ 30! = " + sum); \} \}
还没有评论,来说两句吧...