阶乘

定义

一个正整数的阶乘是指所有小于或等于该正整数的正整数的乘积,记作n!,0的阶乘等于1

Java递归实现

/**
 * 计算数n的阶乘值
 * 
 * @param n
 *            阶乘停止的值
 * @return 阶乘后的结果
 */
public int factorial(int n) {
    if (n == 0) {
        return 1;
    } else if (n < 0) {
        return n * factorial(n + 1);
    } else {
        return n * factorial(n - 1);
    }
}

Java非递归实现

/**
 * 非递归实现阶乘
 * 
 * @param n
 * @return
 */
public int factorialWithoutTraversal(int n) {
    int result = 1;
    if (n == 0) {
        // 如果n等于0直接返回1
        return result;
    }
    int start = n > 0 ? 1 : n;// 如果n大于0的话,阶乘起始值设为1,否则设为n
    int end = n > 0 ? n : -1;// 如果n大于0的话,阶乘终止值设为n,否则设为-1
    for (; start <= end; start++) {
        result = result * start;
    }
    return result;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积。 阶乘通常简写成 n! 例如: 代码如下,使用...
    Joe_Somebody阅读 5,572评论 0 0
  • 计算一个整数的阶乘 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积。 阶乘通常简写成 n! 例...
    少年vv阅读 11,614评论 0 1
  • 计算一个整数的阶乘 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积。 阶乘通常简写成 n! 例...
    蜡笔小狗阅读 3,008评论 0 0
  • 一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作...
    bluescorpio阅读 2,839评论 0 1
  • 坐月子,哎!幸福的月子都是相似的,不幸的月子各有各的不幸!我这人生的第一个月子生活过的也很“奇葩”。 不说刚出院回...
    喵小雨的语阅读 1,514评论 0 0