【4】递归函数的应用: 1) 计算32 + 42 + ⋯ + n2 的值,要求设计递归函数完成求解。 2) 用 eval 函数和 input 函数,让用户输入一个大于 3 的整数,并输出递归函数 的运算结果。程序运行结果以三引号备注的形式,放到相应程序的下方。
时间: 2024-12-08 11:17:21 浏览: 22
C语言程序中递归算法的使用实例教程
递归函数在编程中有广泛的应用,特别是在解决那些可以通过拆分成更小的部分来解决的问题时。这里我会给你介绍两个递归函数的应用实例:
1) 计算 \(32 + 42 + \ldots + n^2\) 的值,我们可以定义一个递归函数 `sum_of_squares`,该函数接受当前项的索引(初始时为1)和总和初始值(例如0),然后逐步计算平方和。
```python
def sum_of_squares(n, current_sum=0):
if n == 1: # 基线条件:当n等于1时,直接返回当前和
return current_sum + 1 ** 2
else:
return sum_of_squares(n - 1, current_sum + n ** 2)
# 测试一下,比如计算5的平方和
result = sum_of_squares(5)
```
2) 使用 `eval()` 和 `input()` 函数,你可以创建一个交互式的程序,让用户输入一个正整数n,然后调用上述递归函数并输出结果。这里需要注意的是,由于 `eval()` 可能带来安全风险,因为它可以执行任意的Python代码。为了简化演示,我们假设用户输入的是一个有效的整数表达式。
```python
def get_user_input():
n_str = input("请输入一个大于3的整数:")
try:
n = int(n_str)
if n <= 3:
raise ValueError("输入的数字必须大于3.")
except ValueError as e:
print(e)
return None
result = sum_of_squares(n)
return f"计算{n}的平方和的结果是:{result}"
user_result = get_user_input()
if user_result is not None:
print(user_result)
```
运行这个程序后,如果用户输入大于3的整数,会输出对应的平方和;否则,会提示错误信息。
阅读全文