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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 仰天长啸 中级黑马   /  2015-3-1 22:35  /  1326 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

以下是我的代码,求的是1!+2!+3!........+19!+20!之和
帮我看下我的代码哪里出了问题{:3_54:}

8 个回复

倒序浏览
这是截图

QQ截图20150301223143.jpg (72.15 KB, 下载次数: 193)

QQ截图20150301223143.jpg
回复 使用道具 举报
阶乘错了  自己再看下{:3_60:}
回复 使用道具 举报 1 0
谢谢,好久没写代码了很生疏,刚改动下了下这回算是改对了        //1!+2!+3!.....+20!

        private static int jiecheng(int i) {
                if(i==1){
                        return 1;
                }else{
                        return i*(i-1);
                }
               
        }
        public static void main(String[] args) {
                        int sum=0;
                for(int j=1;j<21;j++){
                        sum=sum+jiecheng(j);
                       
                }
                System.out.println(sum);
}
}                结果是2610

点评

这答案肯定不对。7!都不止这个数  发表于 2015-3-2 16:06
回复 使用道具 举报
本帖最后由 习惯就好 于 2015-3-1 23:36 编辑

你的算法好像不对!应该用递归比较简单
  1. class  jiecheng
  2. {

  3.           private static int jiecheng(int i) {
  4.                 if(i==1){
  5.                         return 1;
  6.                 }else{
  7.                         return i*jiecheng(i-1);//此处用递归,主函数才能得到最终结果
  8.                 }
  9.                
  10.         }
  11.         public static void main(String[] args)
  12.                         {
  13.                         int sum=0;
  14.                 for(int j=1;j<21;j++){
  15.                         sum=sum+jiecheng(j);
  16.                         
  17.                 }
  18.                 System.out.println(sum);
  19.                         }
  20. }//最终结果为268040729
复制代码
回复 使用道具 举报
仰天长啸 发表于 2015-3-1 23:06
谢谢,好久没写代码了很生疏,刚改动下了下这回算是改对了        //1!+2!+3!.....+20!

        private static int jiec ...

是不对 循环还没结束我就输出结果啦
回复 使用道具 举报
仰天长啸 发表于 2015-3-1 23:06
谢谢,好久没写代码了很生疏,刚改动下了下这回算是改对了        //1!+2!+3!.....+20!

        private static int jiec ...

错了,重新改动下,一会发来
回复 使用道具 举报
public class 阶乘1到20阶乘之和 {
        //1!+2!+3!.....+20!
        private static int jiecheng(int i) {
                if(i==1){
                        return 1;
                }else{
                        return i*jiecheng(i-1);
                }       
        }
        public static void main(String[] args) {
                        int sum=0;
                for(int j=1;j<21;j++){
                        sum=sum+jiecheng(j);       
                }
                System.out.println(sum);
}
               
}        结果是268040729
马虎了:'(:'(
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马