C语言如何用while循环求n的阶乘?

99ANYc3cd6
预计阅读时长 4 分钟
位置: 首页 C语言 正文

C语言使用while循环计算n的阶乘

以下是一个使用while循环计算n的阶乘的C语言程序:

求n的阶乘 c语言 while
(图片来源网络,侵删)
#include <stdio.h>
int main() {
    int n, i = 1;
    long long factorial = 1; // 使用long long防止大数溢出
    printf("请输入一个正整数: ");
    scanf("%d", &n);
    // 处理负数情况
    if (n < 0) {
        printf("错误:阶乘没有定义负数,\n");
        return 1;
    }
    // 使用while循环计算阶乘
    while (i <= n) {
        factorial *= i;
        i++;
    }
    printf("%d的阶乘是: %lld\n", n, factorial);
    return 0;
}

代码说明:

  1. 变量声明

    • n: 用户输入的数字
    • i: while循环的计数器
    • factorial: 存储阶乘结果,初始化为1
  2. 输入处理

    • 提示用户输入一个正整数
    • 使用scanf读取输入
  3. 错误处理

    检查输入是否为负数,阶乘没有定义负数

    求n的阶乘 c语言 while
    (图片来源网络,侵删)
  4. while循环计算阶乘

    • 循环条件:i <= n
    • 每次循环将factorial乘以i
    • i递增
  5. 输出结果

    打印计算得到的阶乘值

注意事项:

  • 使用long long类型存储阶乘结果,因为阶乘增长非常快,普通int类型很容易溢出
  • 对于较大的n值(如n > 20),即使使用long long也可能溢出
  • 程序假设用户输入的是整数,实际应用中可能需要添加输入验证

示例运行:

请输入一个正整数: 5
5的阶乘是: 120
请输入一个正整数: 13
13的阶乘是: 6227020800
-- 展开阅读全文 --
头像
织梦如何调用主栏目下的子栏目?
« 上一篇 01-09
织梦如何添加留言本栏目?
下一篇 » 01-09

相关文章

取消
微信二维码
支付宝二维码

目录[+]