java-实现阶乘和

什么是阶乘?

引用百度百科解释:(阶乘
阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!=1×2×3×…×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
任何大于等于1 的自然数n 阶乘表示方法:
n! = n*(n-1)! 或 n! = 1 x 2 x 3 x 4 x 5 ··· x (n-1)n
0的阶乘为 0!= 1。

阶乘和

a = 1!+2!+3!+…+n!

java 实现阶乘和

```java
public class SumOfFactorial1 {
	/**
	* 当前 方法 循环 从1开始到n的每个数
	* factorial() 方法计算1,2,3,4,5 ···· n 的 阶乘
	* 阶乘和 ans = factorial(i) + ans;
	*/
	public static long fac(int n){
		long ans = 0; // 先定义变量,默认返回值
		//循环从1 开始 到 当前 传进来的值大小
		for(i = 1;i <= n;i++){
			ans += factorial(i);
		}
		return ans;
	}
	/**
	*计算阶乘
	*/
	public static long factorial(int n){
		long ans = 1; // 先定义变量,默认返回值
		for(i = 1;i <= n;i++){
			ans *= i;
		}
		return ans;
	}
   //--------------- 以上是用两个方法 实现的 接下来 用一种 更简便的方法
	
	public static void main(String[] args) {
		int n = 5;
		System.out.println(fac(n));
	}
}

以上是用两个方法 实现的 接下来 用一种 更简便的方法

```java
public class SumOfFactorial2 {
	
	/**
	 * 阶乘和
	 *
	 *10
	 * 1的阶乘  :1*1 = 1
	 * 2的阶乘  :1*1* 2 = 2
	 * 3的阶乘  :1*1*2 *3 = 6
	 * 4的阶乘  :1*1*2*3 *4 = 24
	 * 5的阶乘 :1*1*2*3*4 *5 = 120
	 * 规律为 当前数的阶乘 等于 上一个数的阶乘 * 当前数
	 * 当前 为 4的阶乘  等于 3 的阶乘和 6 * 4 =24
	 * 5的阶乘  等于 4 的阶乘和 24 * 5 = 120
	 * 阶乘和 = 1*1 + 1*1* 2  + 1*1*2 *3 + 1*1*2*3 *4 + 1*1*2*3*4 *5 
	 * 阶乘和 =  1  + 2 + 6 + 24 + 120 = 153
	 */
	public static long factorial(int n){
		long cur = 1; // 先定义变量,保存每次循环的结果,默认为1
		long ans = 0; // 定义返回值,默认 0 
		for(i = 1;i <= n;i++){
			cur *= i; //cur * i = 上一个数阶乘的结果 * 当前数 = 当前数得阶乘值
			ans += cur; 
		}
		return ans;
	}
	
	public static void main(String[] args) {
		int n = 5;
		System.out.println(factorial(n));
	}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值