s=1!+2!+3!+4!+..+7!求s的值并输出。 不能调用数学库函数,分别用双层循环和多层循环实现。 (11.0分)
时间: 2023-11-28 07:43:15 浏览: 12
以下是两种实现方法:
1. 双层循环实现
```c
#include <stdio.h>
int main() {
int i, j, jc, s = 0;
for (i = 1; i <= 7; i++) {
jc = 1;
for (j = 1; j <= i; j++) {
jc *= j;
}
s += jc;
}
printf("%d", s);
return 0;
}
```
输出结果为:5913
2. 多层循环实现
```c
#include <stdio.h>
int main() {
int i, j, s = 0;
for (i = 1; i <= 7; i++) {
int jc = 1;
for (j = 1; j <= i; j++) {
jc *= j;
}
s += jc;
}
printf("%d", s);
return 0;
}
```
输出结果为:5913
相关问题
用递归方法求S=1!+2!+3!+4!+5!
可以使用递归方法来求解S=1!+2!+3!+4!+5!的值。递归方法是一种函数调用自身的方法,可以用来解决一些重复性的问题。
以下是使用递归方法求解S的C语言代码:
```
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
int i, s = 0;
for (i = 1; i <= 5; i++) {
s += factorial(i);
}
printf("S = %d\n", s);
return 0;
}
```
在上面的代码中,factorial函数是一个递归函数,用来计算n的阶乘。当n等于0时,返回1;否则,返回n乘以factorial(n-1)的值。在main函数中,使用for循环计算1到5的阶乘之和,并输出结果。
oracle计算s=1!+2!+...+10!
以下是Oracle计算s=1!+2!+...+10!的代码实现:
```sql
-- 创建一个函数,用于计算n的阶乘
CREATE OR REPLACE FUNCTION factorial(n IN NUMBER) RETURN NUMBER IS
result NUMBER := 1;
BEGIN
FOR i IN 1..n LOOP
result := result * i;
END LOOP;
RETURN result;
END;
/
-- 创建一个函数,用于计算1!+2!+...+n!
CREATE OR REPLACE FUNCTION sum_factorial(n IN NUMBER) RETURN NUMBER IS
result NUMBER := 0;
BEGIN
FOR i IN 1..n LOOP
result := result + factorial(i);
END LOOP;
RETURN result;
END;
/
-- 调用函数,计算1!+2!+...+10!
SELECT sum_factorial(10) FROM dual;
-- 输出结果为:4037913
```