C 语言范例 - 阶乘

一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。

自然数 n 的阶乘写作 n! 。

n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

使用 for 和 if 实现阶乘

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 */

#include <stdio.h>

int main()
{
    int n, i;
    unsigned long long fact = 1;

    printf("输入一个整数: ");
    scanf("%d",&n);

    // 如果输入是负数,显示错误
    if (n < 0)
        printf("Error! 负数没有阶乘");

    else
    {
        for(i=1; i<=n; ++i)
        {
            fact *= i;
        }
        printf("%d! = %llu\n", n, fact);
    }

    return 0;
}

编译运行范例,输出结果如下

$ gcc main.c && ./a.out
输入一个整数: 5
5! = 120

使用递归

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 */

#include <stdio.h>

long long fact(int n);

int main()
{
    int n;
    printf("输入一个整数: ");
    scanf("%d", &n);
    printf("%d! = %lld\n", n, fact(n));
    return 0;
}

long long int fact(int n)
{
    if (n >= 1)
        return n* fact(n-1);
    else
        return 1;
}

编译运行范例,输出结果如下

$ gcc main.c && ./a.out
输入一个整数: 5
5! = 120

C 语言范例

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.