酷代码 AI
菜单
服务商

C++ 实现 N 的阶乘计算:循环与递归方法

在 C++ 中,可以使用循环或者递归的方式来计算 `N!`(`N` 的阶乘)。下面分别给出使用循环和递归实现的代码示例。 ### 🔁 使用循环实现 ```cpp #include <iostream> // 计算阶乘的函数,使用循环 long long factorial(int N) { long long result = 1; // 从 1 到 N 进行循环 for (int i = 1; i <= N; ++i) { result *= i; } return result; } int main() { int N; std::cout << "请输入一个整数 N: "; std::cin >> N; if (N < 0) { std::cout << "负数没有阶乘。" << std::endl; } else { long long fact = factorial(N); std::cout << N << " 的阶乘是: " << fact << std::endl; } return 0; } ``` #### 代码解释 - `factorial` 函数接受一个整数 `N` 作为参数,使用 `for` 循环从 1 到 `N` 依次相乘,最终得到 `N` 的阶乘。 - 在 `main` 函数中,首先提示用户输入一个整数 `N`,然后检查 `N` 是否为负数,如果是负数则输出提示信息,否则调用 `factorial` 函数计算阶乘并输出结果。 ### 🔄 使用递归实现 ```cpp #include <iostream> // 计算阶乘的函数,使用递归 long long factorial(int N) { if (N == 0 || N == 1) { return 1; } else { return N * factorial(N - 1); } } int main() { int N; std::cout << "请输入一个整数 N: "; std::cin >> N; if (N < 0) { std::cout << "负数没有阶乘。" << std::endl; } else { long long fact = factorial(N); std::cout << N << " 的阶乘是: " << fact << std::endl; } return 0; } ``` #### 代码解释 - `factorial` 函数使用递归的方式计算阶乘。当 `N` 为 0 或 1 时,阶乘为 1;否则,`N` 的阶乘等于 `N` 乘以 `(N - 1)` 的阶乘。 - 在 `main` 函数中,同样先提示用户输入一个整数 `N`,检查 `N` 是否为负数,然后调用 `factorial` 函数计算阶乘并输出结果。 ######[AI问答 | 662点数解答 | 2026-03-29 20:26:31]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]