1977的阶乘如何用c语言代码计算
时间: 2023-03-14 15:39:52 浏览: 89
1977的阶乘可以用以下C语言代码计算:long long factorial(int n) { long long result = 1; for (int i = 1; i <= n; i++) { result *= i; } return result; }
相关问题
求输入一个数的阶乘,c语言代码
好的,以下是一个用C语言实现计算阶乘的代码:
```c
#include <stdio.h>
int main() {
int n, i;
unsigned long long factorial = 1;
printf("请输入一个正整数:");
scanf("%d", &n);
// 如果输入的是负数,则不计算
if (n < 0)
printf("错误!输入的是负数。");
else {
for (i = 1; i <= n; ++i) {
factorial *= i; // 计算阶乘
}
printf("%d 的阶乘是 %llu", n, factorial);
}
return 0;
}
```
当执行完这段代码后,您可以输入一个正整数,程序会计算它的阶乘并输出结果。注意,在输入负数时,程序会提示错误。
高精度阶乘c语言代码
高精度阶乘是指计算超出了标准数据类型范围的阶乘,一般需要使用数组或者字符串来存储结果。以下是一个简单的高精度阶乘的C语言代码示例:
```c
#include <stdio.h>
// 计算高精度阶乘
void highPrecisionFactorial(int n) {
int result[10000]; // 用数组存储结果
result[0] = 1; // 结果初始化为1
int resultSize = 1; // 结果的位数
for (int i = 2; i <= n; i++) {
int carry = 0; // 进位
for (int j = 0; j < resultSize; j++) {
int product = result[j] * i + carry; // 逐位计算乘积
result[j] = product % 10; // 保存当前位
carry = product / 10; // 进位
}
while (carry > 0) { // 处理最高位的进位
result[resultSize] = carry % 10;
carry /= 10;
resultSize++;
}
}
// 输出结果
printf("高精度阶乘结果为:");
for (int i = resultSize - 1; i >= 0; i--) {
printf("%d", result[i]);
}
printf("\n");
}
int main() {
int n;
printf("请输入要计算阶乘的数:");
scanf("%d", &n);
highPrecisionFactorial(n);
return 0;
}
```
这个代码使用数组来存储结果,通过逐位计算阶乘并处理进位的方式来实现高精度阶乘的计算。输入一个数n后,调用`highPrecisionFactorial`函数即可输出n的阶乘结果。