A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© maxwell247 中级黑马   /  2015-9-26 18:26  /  976 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


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


/*
        题目:求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
*/

7 个回复

倒序浏览
加油
回复 使用道具 举报
加油,赞
回复 使用道具 举报
楼上抢我沙发-- ~
回复 使用道具 举报
支持一下!!!!!!!!!!!
回复 使用道具 举报
支持一下,一起加油
回复 使用道具 举报
阿秋 中级黑马 2015-9-28 21:26:41
7#
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);
        }
}
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马