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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liuzegang 中级黑马   /  2016-2-6 20:02  /  5597 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求1+2!+3!+...+20!的和

4 个回复

正序浏览
本帖最后由 陈梦佳 于 2016-2-7 13:57 编辑

public class Jiechen {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                double sum=0;                                  //定义一个sum来存放最后的计算结果
                for (int i = 1; i <= 20; i++) {             //循环计算1+2!+3!+...+20!的和
                        sum=sum+sum(i);                   //当前阶乘数加上上一次计算的和就为本次的求和
                        
                }
               
                System.out.println("1+2!+3!+...+20!="+sum);      
        
        }

        
        public static double sum(double num) {   //此方法用于递归计算一个数的阶乘
                // TODO Auto-generated method stub
                if (num==1) {                                   //1的阶乘为1
                        return 1;
                        
                }else{
                return num*sum(num-1);             //本次数乘以上一个数的阶乘
                }
                        
                }
        }

回复 使用道具 举报
非常感谢
回复 使用道具 举报

RE: 求1+2!+3!+...+20!的和

上一条还没写完,按错了,不小心发出去了,sorry!
试下下面的代码可不可以吧
int i,j,a,b;
a=0,b=1;
for(i=1;i<21;i++)
{
for(j=i;j>0;j--)
   {
        b*=j;
   }
   a+=b;
}
回复 使用道具 举报
for(int i=1;i<21;i++)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马