c语言用函数fac编写程序实现x=1!+3!+5!+7!+
时间: 2023-09-02 16:14:01 浏览: 60
以下是用C语言编写的实现:
```c
#include <stdio.h>
int fac(int n) {
if (n <= 1) {
return 1;
}
else {
return n * fac(n-2);
}
}
int main() {
int i, x;
for (i = 1; i <= 7; i += 2) {
x = fac(i);
printf("%d! = %d\n", i, x);
}
return 0;
}
```
运行结果:
```
1! = 1
3! = 6
5! = 120
7! = 5040
```
在上面的程序中,函数`fac`用于计算阶乘,递归实现。主函数中使用循环调用`fac`函数计算1!、3!、5!、7!。
相关问题
c语言用函数fac编写程序实现x=1!+3!+5!+7!+9!
以下是用函数fac编写实现x=1! 3! 5! 7! 9!的C语言程序:
```c
#include <stdio.h>
int fac(int n) {
if (n <= 1) {
return 1;
} else {
return n * fac(n-2);
}
}
int main() {
int x = 1;
for (int i = 3; i <= 9; i += 2) {
x *= fac(i);
}
printf("x = %d\n", x);
return 0;
}
```
在这个程序中,我们定义了一个递归函数`fac`,用来计算n的阶乘。然后在`main`函数中,我们使用一个循环来计算1!、3!、5!、7!和9!的乘积,并最终输出结果。
编写函数sum_fac,求1!+2!+3!+…+n!。
以下是C语言和Java语言的实现方法:
C语言实现:
```c
#include <stdio.h>
int fact(int n);
long sum_fac(int n) {
int i;
long sum = 0;
for (i = 1; i <= n; i++) {
sum += fact(i);
}
return sum;
}
int fact(int n) {
int i;
long result = 1;
for (i = 2; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
int n;
long sum;
printf("输入n(n>0)\n");
scanf("%d", &n);
sum = sum_fac(n);
printf("sum=%ld\n", sum);
return 0;
}
```
Java语言实现:
```java
public class Ks {
public static void main(String args[]) {
int sum = 0;
int n = 3;
Ks s = new Ks();
sum = s.sum_fac(n);
System.out.println(sum);
}
public int sum_fac(int n) {
int i;
int sum = 0;
for (i = 1; i <= n; i++) {
sum += fac(i);
}
return sum;
}
public int fac(int n) {
int i;
int result = 1;
for (i = 2; i <= n; i++) {
result *= i;
}
return result;
}
}
```