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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 xt654005440 于 2013-8-1 23:28 编辑

RT~~n!运算我该怎么实现,我想做成一个方法,以后直接拿了用。

9 个回复

倒序浏览
int Fun(int n)
{
      if (n == 0 || n == 1) return 1;

       int i =1,sum = 1;
       while (i<=n)
        {
                sum *= i;
                i++;
         }
         return sum;
}
回复 使用道具 举报
public static void Njiecheng(int n)
{
        int intCj;
        for(int i = 1;i<=n;i++)
        {
                intCj *= i;
        }
        return intCj;
}

点评

代码有3个问题:1,方法有int型返回值,不应该用void 2, intCj使用前应初始化赋值为1 3,应该考虑n=0和n=1的情况  发表于 2013-8-1 02:07
回复 使用道具 举报

public static int GetSumByInt(int n)
{
        int iSum=0;
        for(int i = 0;i<=n;i++)
        {
                iSum+= i;
        }
        return iSum;
}

点评

也是三个问题: 1,应该考虑n=0和n=1的情况 2,iSum初始值不能为0,应该为1 3,iSum*=i ,是求阶乘不是累加哦  发表于 2013-8-1 02:10
回复 使用道具 举报
前两位的方法差不多,还可以用递归的方法
protected int GetSum(int n)
        {
            if (n == 1 || n == 0)
                return 1;
            else
                return GetSum(n - 1) * n;

        }

点评

用递归代码好简洁!  发表于 2013-8-1 02:11
回复 使用道具 举报 1 0
本帖最后由 黑骏马 于 2013-8-1 02:21 编辑

藤椅和板凳两位同学显然都没运行过自己的代码。
用循环方法代码应该是这样的:
  1.     public static int Jiecheng(int n)
  2.     {
  3.         int nJiecheng = 1;
  4.         if (n == 0 || n == 1)
  5.         {
  6.             return 1;
  7.         }
  8.         else
  9.         {
  10.             for (int i = 1; i <= n; i++)
  11.             {
  12.                 nJiecheng *= i;
  13.             }
  14.             return nJiecheng;
  15.         }
  16.     }
复制代码
回复 使用道具 举报
学习了,用递归,就像楼上说的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马