单位 浙大城市学院 输入正整数n,输出1!~n!的值。要求定义并调用含静态变量的函数fact_s(n)计算n!,其中n的类型是int,函数类型是double。 #include <stdio.h> double fact_s(int n); int main(void) { int i, n; scanf("%d", &n); for(i = 1; i <= n; i++){ printf("%3d! = %.0f\n", i, fact_s(i)); } return 0; } double fact_s(int n) { f = ; return ; }
时间: 2024-03-26 14:38:18 浏览: 131
好的,我明白了。下面是代码实现:
```c
#include <stdio.h>
double fact_s(int n);
int main(void) {
int i, n;
scanf("%d", &n);
for(i = 1; i <= n; i++){
printf("%3d! = %.0f\n", i, fact_s(i));
}
return 0;
}
double fact_s(int n) {
static double f = 1.0; // 静态变量,初始值为1.0
f *= n; // 计算n的阶乘
return f;
}
```
函数`fact_s`是一个递推函数,利用静态变量实现了上一次计算结果的保存,从而避免了重复计算。在主函数中,依次调用`fact_s`计算1!~n!的值并输出。注意输出格式中的%.0f表示输出一个整数。
相关问题
正整数逆序输出 作者 张高燕 单位 浙大城市学院 输入一个正整数n,将其逆序输出。要求定义和调用函数reverse(num),其功能是将num逆序输出,要求用递归实现。例如,输入12345,输出54321。
张高燕老师的代码示例中,可以使用递归的方式来实现正整数的逆序输出。这里是一个用Python编写的函数`reverse`,它接受一个正整数作为参数,并通过递归的方式将其每一位数字反转:
```python
def reverse(num):
# 基线条件:如果输入的是0或1,直接返回
if num < 10:
return str(num)
# 递归条件:将最后一位数字取出并乘以10的相应次幂,然后递归处理剩余部分
else:
last_digit = num % 10
rest = num // 10
return reverse(rest) + str(last_digit)
# 主函数,接收用户输入的正整数并调用逆序函数
def main():
n = int(input("请输入一个正整数:"))
reversed_num = reverse(n)
print("逆序输出的结果为:", reversed_num)
if __name__ == "__main__":
main()
```
当你运行这个程序并输入一个正整数,如12345,会得到输出54321。
1+1/2!+... +1/n! 分数 3 作者 颜晖 单位 浙大城市学院 输入一个非负整数,求1+1/2!+...+1/n!。假设变量已正确定义
以下是Python代码实现:
```python
n = int(input("请输入一个非负整数:"))
sum = 0
item = 1
for i in range(1, n+1):
item *= i
sum += 1/item
print("结果为:", sum)
```
阅读全文