黑马程序员技术交流社区

标题: 练习九:阶乘数列求和 [打印本页]

作者: maxwell247    时间: 2015-9-26 18:26
标题: 练习九:阶乘数列求和

从网上找到一份编程练习题,我决定将里面的题目全都做一遍。


/*
        题目:求1+2!+3!+...+20!的和
*/
/*
        分析:求阶乘,用递归。注意结果超过了int的范围,使用long类型接收。
*/
class JieChengQiuHe {
        public static void main(String[] args) {
                System.out.print("1+2!+3!+...+20!的和是");
                long sum=0;
                for (int i=1; i<=20; i++){
                        sum+=jieCheng(i);
                }
                System.out.println(sum);
        }

        public static long jieCheng(int num){
                long result=0;
                if (num==1 || num==0){
                        result=1;
                }else if(num>1){
                        result=num*jieCheng(num-1);
                }
                return result;
        }
}

/*
        输出结果
        1+2!+3!+...+20!的和是2561327494111820313
*/


作者: 乐闻    时间: 2015-9-26 18:29
加油
作者: shadowlight    时间: 2015-9-26 18:29
加油,赞
作者: 348480115    时间: 2015-9-26 18:34
楼上抢我沙发-- ~
作者: ll5353231    时间: 2015-9-26 18:43
支持一下!!!!!!!!!!!
作者: TheOnly    时间: 2015-9-26 18:47
支持一下,一起加油
作者: 阿秋    时间: 2015-9-28 21:26
class A {
        public static void main(String[] args) {
                long[] arr=new long[21];
                for (int x=1;x<=20 ;x++ ) {
                        long sum=1;
                        for (int y=1;y<=x ;y++ ) {
                                sum=sum*y;
                        }
                        arr[x]=sum;
                }
                        long max=0;
                for (int x=1;x<=20 ;x++ ) {
                        max+=arr[x];
                }
                System.out.println("和为"+max);
        }
}
作者: 往事如风555    时间: 2015-9-28 22:06
谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2