`

java计算阶乘

    博客分类:
  • J2SE
阅读更多
/**
 * 
 * 计算阶乘
 */
public class Factorial 
{
	/**
	 * 计算n!的值,利用公式n!= n*(n-1) * (n-2) .... * 2 * 1
	 * @param n
	 * @return
	 */
	public long getFactorial(int n)
	{
		/*
		 * 因为当n大于17时,n!的值超过了long类型的范围,会出现错误
		 * 因此这里限定了n必须小于等于17
		 * 数学上没有负数的阶乘的概念,因此n必须大于等于0
		 */
		if((n<0) || (n>17))
		{
			System.err.println("n的值的范围必须在区间[0,17]内!");
			return -1;
		}
		else if(n==0)
		{
			return 1;	//0!是1
		}
		else
		{
			long result = 1;
			for(;n>0;n--)
			{
				result *= n;
			}
			return result;
		}
	}
	
	public static void main(String args[])
	{
		Factorial test = new Factorial();
		System.out.println(test.getFactorial(15));
	}
}
分享到:
评论
2 楼 234369425 2012-06-19  
同上,是20
1 楼 bcw104 2009-10-14  

相关推荐

Global site tag (gtag.js) - Google Analytics