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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马赛 中级黑马   /  2015-12-27 14:36  /  1200 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求1! + 2! + 3! + 4! + ... + n!

public static void jieCheng2(int n){        int sum = 0;
        // int jiecheng = 1; 放到这里结果就不对,为什么?
        for(int i = 1; i <= n; i++){
                int jiecheng = 1;        // 放到成员位置结果会不一样
                for(int j = 1; j <= i; j++){
                        jiecheng *= j;
                }
                sum += jiecheng;
        }
        System.out.println("阶乘和为: " + sum);
}



3 个回复

倒序浏览
你这个。我看糊涂了,反正是错的。而且,成员变量和局部变量楼主可能也理解错意思了。
这个题可以用递归来做。
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 // 求1! + 2! + 3! + 4! + ... + n!
  4.                 int n = 10;
  5.                 int num = 0;

  6.                 for (int x = 1; x <= n; x++) {
  7.                         num = num + jieCheng(x);
  8.                 }

  9.                 System.out.println(num);
  10.         }

  11.         /*
  12.          * 阶乘的方法:规律:n! = n*(n-1)!, 出口:当n=1时,返回1
  13.          */
  14.         public static int jieCheng(int n) {
  15.                 if (n == 1) {
  16.                         return 1;
  17.                 } else {
  18.                         return n * jieCheng(n - 1);
  19.                 }
  20.         }
  21. }
复制代码
回复 使用道具 举报
Hi.。 发表于 2015-12-27 19:26
你这个。我看糊涂了,反正是错的。而且,成员变量和局部变量楼主可能也理解错意思了。
这个题可以用递归来 ...

另:成员变量,即在成员位置,在方法声明外。也叫实例变量,属于对象。随着对象创建而存在,随着对象消失而小时。
局部变量:方法声明中或者方法声明上,属于方法。随着方法调用而存在,随着方法调用结束而消失。
回复 使用道具 举报
Hi.。 发表于 2015-12-27 19:28
另:成员变量,即在成员位置,在方法声明外。也叫实例变量,属于对象。随着对象创建而存在,随着对象消失 ...

成员变量那个看错了,把方法看成类了....
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马