黑马程序员技术交流社区

标题: 关于for循环嵌套的一个问题 [打印本页]

作者: 马赛    时间: 2015-12-27 14:36
标题: 关于for循环嵌套的一个问题
求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);
}




作者: Hi.。    时间: 2015-12-27 19:26
你这个。我看糊涂了,反正是错的。而且,成员变量和局部变量楼主可能也理解错意思了。
这个题可以用递归来做。
  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:28
Hi.。 发表于 2015-12-27 19:26
你这个。我看糊涂了,反正是错的。而且,成员变量和局部变量楼主可能也理解错意思了。
这个题可以用递归来 ...

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

成员变量那个看错了,把方法看成类了....




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