Java作业-阶乘求和

目标效果:


源码:

/**
 * 求1+2!+3!+...+20!的和
 * @author Vivinia
 *
 */
public class factorial {
	public static void main(String args[]) {
		long sum=0,num=1;           //sum用于加和,num作为每一个数阶乘后的结果
		for(int i=1;i<=20;i++) {
			num*=i;                 //num始终保留上一次阶乘的结果,所以只需要乘i
			sum+=num;               //每次阶乘后相加
		}
		System.out.println("1+2!+3!+...+20!="+sum);
	}
}

一个数的阶乘等于这个数的本身乘前一个数的阶乘,所以源码中num在运算过程中,是随着I的变化依次相乘作为每一个数的阶乘项,直接参与相加即可,这个体可以使用两层for循环进行计算,但是两层for循环会增加时间复杂度。


你可能感兴趣的:(Java)