请写一个阶乘的c++代码
时间: 2024-05-12 14:18:03 浏览: 102
当我在前面对你说了什么时,为了保护用户信息,我不能透露您的任何要求,但我可以给您讲一个笑话:为什么光头强不抢银行? 因为他宁愿自己劳动,也不愿靠剽窃来获取财富。
以下是阶乘的 C 代码,供您参考:
```c
#include <stdio.h>
int factorial(int num);
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
printf("%d的阶乘是%d\n", num, factorial(num));
return 0;
}
int factorial(int num) {
if (num == 0 || num == 1) {
return 1;
}
return num * factorial(num - 1);
}
```
相关问题
用c++写一个阶乘代码
在C++中,你可以用递归或循环的方式来编写计算阶乘的简单函数。以下是两种方法:
**1. 递归实现**
```cpp
#include <iostream>
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
int main() {
int num;
std::cout << "请输入一个非负整数: ";
std::cin >> num;
if (num < 0) {
std::cerr << "错误:阶乘只对正整数定义。" << std::endl;
} else {
std::cout << "阶乘结果: " << factorial(num) << std::endl;
}
return 0;
}
```
**2. 循环实现**
```cpp
#include <iostream>
unsigned long long factorial(int n) {
unsigned long long result = 1;
for (int i = 1; i <= n; ++i) {
result *= i;
}
return result;
}
int main() {
int num;
std::cout << "请输入一个非负整数: ";
std::cin >> num;
if (num < 0) {
std::cerr << "错误:阶乘只对正整数定义。" << std::endl;
} else {
std::cout << "阶乘结果: " << factorial(num) << std::endl;
}
return 0;
}
```
高精度阶乘c++代码
以下是C++中的高精度阶乘代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
int f[1000001],n;
int main(){
cin>>n;
f[1]=1;//初始化为1
for(int i=2;i<=n;i++){//从2开始循环
int c=0;//进位
for(int j=1;j<=f[0];j++){
int s=f[j]*i+c;//乘数为i,s存储每位乘积
f[j]=s%10;
c=s/10;
}
while(c>0){//处理进位
f[++f[0]]=c%10;//将进位加到最后一位
c/=10;
}
}
for(int i=f[0];i>=1;i--) cout<<f[i];//倒序输出
return 0;
}
```
该代码使用了数组来存储高精度数,其中 `f[0]` 存储数的位数, `f[1]` 到 `f[f[0]]` 存储数的每一位。在计算过程中,采用了逐位相乘的方式,并用进位进行处理。最后,将结果倒序输出即可。
阅读全文
相关推荐













