c++求一个数的阶乘
时间: 2024-10-24 12:11:00 浏览: 30
在 C++ 中计算一个数的阶乘可以使用递归函数或者循环结构。这里给出一个使用循环的示例:
```cpp
#include <iostream>
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况,0和1的阶乘都是1
return 1;
} else {
unsigned long long result = 1; // 初始化结果为1
for (int i = 2; i <= n; ++i) { // 从2到n累乘
result *= i;
}
return result;
}
}
int main() {
int number;
std::cout << "请输入一个整数: ";
std::cin >> number;
if (number < 0) {
std::cout << "负数没有阶乘。\n";
} else {
std::cout << "该数的阶乘是: " << factorial(number) << "\n";
}
return 0;
}
```
在这个程序中,`factorial()` 函数接受一个整数 `n`,并返回它的阶乘。如果输入的是负数,程序会提示没有阶乘的概念。
相关问题
c++ 求多个数的阶乘
以下是求多个数的阶乘的Python代码:
```python
def factorial(n):
if n <= 1:
return 1
else:
return n * factorial(n-1)
def multi_factorial(*nums):
result = []
for num in nums:
result.append(factorial(num))
return result
print(multi_factorial(5, 6, 7, 8)) # 输出 [120, 720, 5040, 40320]
```
首先定义一个递归函数 `factorial`,用来计算单个数的阶乘。
然后定义 `multi_factorial` 函数,使用可变参数 `*nums` 来接收多个数,遍历这些数并调用 `factorial` 函数计算阶乘,将结果存入列表中并返回。
最后调用 `multi_factorial` 函数,传入参数 5、6、7、8,输出结果为 `[120, 720, 5040, 40320]`,即这些数的阶乘。
c++求整数n的阶乘
C++求整数n的阶乘有两种方法:循环和递归。
循环方法代码如下:
```c++
#include <iostream>
#include <string>
using namespace std;
int jiecheng(int a) {
int s=1;
while (a>1) {
s= s*a;
a-=1;
}
return s;
}
int main() {
cout<<"输入一个整数: "<<endl;
int a;
cin>>a;
int res=jiecheng(a);
cout<<"结果: "<<res<<endl;
return 0;
}
```
递归方法代码如下:
```c++
#include <iostream>
#include <string>
using namespace std;
int jiecheng(int a) {
int res;
if (a==1)
res=1;
while(a>1)
return a*jiecheng(a-1);
}
int main() {
cout<<"输入一个整数: "<<endl;
int a;
cin>>a;
int res=jiecheng(a);
cout<<"结果: "<<res<<endl;
return 0;
}
```
阅读全文