c语言怎么求阶乘之和

阶乘是一个数学概念,表示一个正整数的连乘积,5的阶乘(记作5!)是1*2*3*4*5=120,在C语言中,我们可以使用循环或递归的方式来求解阶乘,下面我将分别介绍这两种方法。

c语言怎么求阶乘之和
(图片来源网络,侵删)

使用循环求阶乘

1、我们需要定义一个变量来存储阶乘的结果,以及一个循环变量来遍历从1到给定数的所有整数。

#include <stdio.h>
int main() {
    int n, i;
    long long factorial = 1; // 使用long long类型来存储阶乘结果,避免溢出
    printf("请输入一个正整数:");
    scanf("%d", &n);

2、接下来,我们使用for循环遍历从1到n的所有整数,并将它们累乘到factorial变量中。

    for (i = 1; i <= n; i++) {
        factorial *= i;
    }

3、我们输出阶乘的结果。

    printf("%d的阶乘为:%lld
", n, factorial);
    return 0;
}

将以上代码整合到一起,完整的程序如下:

#include <stdio.h>
int main() {
    int n, i;
    long long factorial = 1; // 使用long long类型来存储阶乘结果,避免溢出
    printf("请输入一个正整数:");
    scanf("%d", &n);
    for (i = 1; i <= n; i++) {
        factorial *= i;
    }
    printf("%d的阶乘为:%lld
", n, factorial);
    return 0;
}

使用递归求阶乘

1、我们需要定义一个递归函数来计算阶乘,在这个函数中,我们需要传入两个参数:一个是待求阶乘的正整数n,另一个是当前计算到的阶乘值,初始时,我们将当前阶乘值设置为1。

#include <stdio.h>
long long factorial(int n, long long current) {
    if (n == 1) { // 当n等于1时,返回当前阶乘值作为结果
        return current;
    } else { // 否则,将当前阶乘值乘以n1的阶乘,并继续递归调用factorial函数
        return factorial(n 1, current * n);
    }
}

2、在main函数中,我们调用这个递归函数来计算阶乘,我们需要输入一个正整数n,我们调用factorial函数,传入n和1作为参数,我们输出阶乘的结果。

int main() {
    int n;
    printf("请输入一个正整数:");
    scanf("%d", &n);
    printf("%d的阶乘为:%lld
", n, factorial(n, 1)); // 调用factorial函数计算阶乘,并输出结果
    return 0;
}

将以上代码整合到一起,完整的程序如下:

#include <stdio.h>
long long factorial(int n, long long current) {
    if (n == 1) { // 当n等于1时,返回当前阶乘值作为结果
        return current;
    } else { // 否则,将当前阶乘值乘以n1的阶乘,并继续递归调用factorial函数
        return factorial(n 1, current * n);
    }
}
int main() {
    int n;
    printf("请输入一个正整数:");
    scanf("%d", &n);
    printf("%d的阶乘为:%lld
", n, factorial(n, 1)); // 调用factorial函数计算阶乘,并输出结果
    return 0;
}

原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/378035.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
酷盾叔订阅
上一篇 2024-03-23 11:14
下一篇 2024-03-23 11:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入