Java中求阶乘的算法 博客分类: Java 算法Java
程序员文章站
2024-03-22 10:20:17
...
Java中求阶乘的算法
1.一般算法:
public class Factorial { public static int factorial(int n) { if (n < 0 || n > 16) { System.err.println("n must be great than 0 and less than 17"); return -1; } else if (n == 0) { return 1; } else { int result = 1; for (int i = 1; i <= n; i++) { result *= i; } return result; } } public static void main(String args[]) { System.out.println("result = " + factorial(5)); } }
运行结果:result = 120
2.递归算法:
public class Factorial { public static int recursion(int n) { if (n < 0 || n > 16) { System.err.println("n must be great than 0 and less than 17"); return -1; } else if (n == 0) { return 1; } else { return n * recursion(n - 1); } } public static void main(String[] args) { System.out.println("result = " + recursion(16)); } }
运行结果:result = 2004189184
3.使用BigInteger
import java.math.BigInteger; public class Factorial { public static BigInteger bigInteger(int n) { BigInteger result = new BigInteger("1"); if (n < 0) { System.err.println("n must be great than 0"); return new BigInteger("-1"); } else if (n == 0) { return new BigInteger("1"); } else { for (int i = 1; i <= n; i++) { BigInteger num = new BigInteger(String.valueOf(i)); result = result.multiply(num); } return result; } } public static void main(String[] args) { System.out.println("result = " + bigInteger(100)); } }
运行结果:result = 93326215443944152681699238856266700490715968264381621468592963895
217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
上一篇: C++宏定义中#和##的用法
下一篇: | 和 ||,& 和 && 的区别
推荐阅读
-
Java中求阶乘的算法 博客分类: Java 算法Java
-
SpringMVC中JSP取不到ModelAndView的数据的原因 博客分类: java Java spring springMVC
-
SpringMVC中JSP取不到ModelAndView的数据的原因 博客分类: java Java spring springMVC
-
二叉树的深度优先遍历和广度优先遍历 博客分类: Java 算法数据结构
-
海量数据相似度计算之simhash短文本查找 博客分类: 算法架构创业java simhash局部敏感哈希海明距离海量数据相似度
-
Java加密解密快速入门上篇【包括MD5、BASE64、DES、RSA等算法】 博客分类: Java java加密md5base64安全
-
2019金九银十BAT面试指南,必须要掌握这6大知识点(跳槽必看) 博客分类: java架构师 面试javajdk算法
-
java ee中实现翻页 博客分类: JAVA EE java算法servletjsporacle
-
(转)关于两个jar包中存在包名和类名都完全相同的问题 博客分类: Java javajareclipse
-
java中对程序进行修改的时机。 博客分类: Java