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]
- Java 实现计算机硬件模拟:从 PCI 设备到主板、计算机的启动与关闭(字节豆包 | 716点数解答 | 2024-12-08 23:38:38)328
- Java 代码:模拟计算机主板启动与关闭 PCI 设备全流程(字节豆包 | 637点数解答 | 2024-12-09 08:31:54)297
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)346
- Java 实战:Vehicle 类与 User 类实现机动车速度功率控制( | 968点数解答 | 2024-03-12 11:26:25)544
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)467
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)358
- Java 实战:动物类、接口与继承实现鸟儿吃虫和飞翔功能(字节豆包 | 183点数解答 | 2024-09-19 15:53:55)289
- Java 实战:动物类、接口与继承,实现鸟儿吃虫与飞翔功能(字节豆包 | 184点数解答 | 2024-09-19 16:45:48)311
- Java 实现 BankAccount 类:账户余额管理与测试全解析(字节豆包 | 420点数解答 | 2024-10-11 08:48:21)318
- Java 编程:实现教师与学生类的创建、继承及属性操作(字节豆包 | 745点数解答 | 2024-10-16 18:40:42)394
- Java 实现 Circle 类:全面封装圆的属性与方法(字节豆包 | 256点数解答 | 2024-10-27 16:34:37)245
- Java 实现继承关系:Fu 类、Zi 类与测试类 Example04 代码解析及注意要点(字节豆包 | 251点数解答 | 2024-12-12 09:36:45)246