用C++语言写一个求阶乘的函数
时间: 2023-03-06 16:26:23 浏览: 115
int Factorial(int n) {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
相关问题
用c++写折半查找求阶乘函数后K个零
这里给出一个用C++实现的求阶乘函数后K个零的折半查找算法。
```
#include <iostream>
using namespace std;
// 计算n的阶乘后有多少个0
int countZero(int n) {
int count = 0;
while (n > 0) {
count += n / 5;
n /= 5;
}
return count;
}
// 折半查找
int findK(int k) {
int left = 0, right = 5 * k;
while (left < right) {
int mid = (left + right) / 2;
if (countZero(mid) >= k) {
right = mid;
} else {
left = mid + 1;
}
}
return left;
}
int main() {
int k = 5;
int res = findK(k);
cout << "阶乘后" << k << "个零的位置为:" << res << endl;
return 0;
}
```
这里的思路是先写一个计算n的阶乘后有多少个0的函数countZero,然后利用折半查找在0到5*k之间查找第一个满足countZero(mid)>=k的mid,最后返回mid即可。
用C++写一个阶乘函数,并打印6的阶乘
以下是用C语言编写的阶乘函数,并打印6的阶乘:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int num = 6;
int result = factorial(num);
printf("%d的阶乘是%d\n", num, result);
return 0;
}
```
输出结果为:
```
6的阶乘是720
```