利用求阶乘函数fact,编程计算并输出1到n之间所有整数的阶乘值C语言
时间: 2024-06-04 19:12:15 浏览: 136
#include <stdio.h>
int fact(int n); // 声明求阶乘函数
int main() {
int n, i;
printf("请输入一个整数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
printf("%d! = %d\n", i, fact(i)); // 输出每个整数的阶乘值
}
return 0;
}
int fact(int n) {
if (n == 0 || n == 1) { // 0和1的阶乘为1
return 1;
} else {
return n * fact(n - 1); // 递归求解阶乘
}
}
相关问题
用C语言利用求阶乘函数Fact(),编程计算并输出从1到n之间所有数的阶乘值。 **输入格式要求:"%u" 提示信息:"Input n(n>0):" **输出格式要求:"%d! = %lu\n"
以下是代码实现:
```c
#include <stdio.h>
unsigned long Fact(int n) {
if (n <= 1) {
return 1;
} else {
return n * Fact(n - 1);
}
}
int main() {
int n;
printf("Input n(n>0): ");
scanf("%u", &n);
for (int i = 1; i <= n; i++) {
printf("%d! = %lu\n", i, Fact(i));
}
return 0;
}
```
程序流程如下:
1. 定义一个求阶乘的函数 `Fact()`,如果输入的数小于等于1,返回1,否则返回 n*Fact(n-1)。
2. 在主函数中,先输入一个大于0的整数 n。
3. 循环从 1 到 n,分别调用 `Fact()` 函数求出当前数的阶乘并输出。
注意,题目要求输出的阶乘值类型为 unsigned long,所以 `Fact()` 函数的返回值也要是 unsigned long 类型。另外,输入格式要求使用 "%u",表示无符号整数。
利用求阶乘函数Fact(),编程计算并输出1!+2!+……+n!的值
以下是利用求阶乘函数Fact(),编程计算并输出1!+2!+……+n!的值的C语言代码:
```c
#include <stdio.h>
int Fact(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * Fact(n - 1);
}
}
int main() {
int n, sum = 0;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += Fact(i);
}
printf("1!+2!+...+%d!的值为:%d\n", n, sum);
return 0;
}
```
运行结果如下:
```
请输入一个正整数n:5
1!+2!+...+5!的值为:153
```
阅读全文