1!+2!+...+N!的递归和非递归实现

来源:互联网 发布:喜马拉雅fm windows 编辑:程序博客网 时间:2024/05/29 16:55

1.递归实现

/** * 求1!+2!+3!+4!+5!+...+n!  * 非递归 * */public class TestJC {public static void main(String[] args) {long l = Cal(4);System.out.println(l);}public static long Cal(int n){int sum = 0;int m = 1;for(int i=1;i<=n;i++){m*=i;sum += m;}return sum;}}


2.非递归实现

/** * 求1!+2!+3!+4!+5!+...+n!  * 递归实现 * */public class TestJC2 {public static void main(String[] args) {long l = Cal(4);System.out.println(l);}public static long Cal(int n){int sum = 0;for(int i=1;i<=n;i++){sum += count(i);}return sum;}public static long count(int i){if(i == 1)return 1;elsereturn i*count(i-1);}}


原创粉丝点击