分别使用循环和递归方法求解:1+2+3+4+...99+100的和,利用time函数获取两种方法的运行时间,并对他们进行比较。
时间: 2024-10-25 19:18:37 浏览: 42
pat1-12题通过的代码
首先,让我们分别使用循环和递归的方式来计算1到100的和。
**使用循环的方法**:
```python
import time
def sum_loop(n):
total = 0
for i in range(1, n+1):
total += i
return total
start_time = time.time()
result_loop = sum_loop(100)
end_time = time.time()
loop_time = end_time - start_time
print("循环法的结果:", result_loop)
print("循环法耗时:", loop_time, "秒")
```
**使用递归的方法**:
```python
def sum_recursive(n, total=0):
if n == 1:
return total + n
else:
return sum_recursive(n-1, total+n)
start_time = time.time()
result_recursive = sum_recursive(100)
end_time = time.time()
recursive_time = end_time - start_time
print("递归法的结果:", result_recursive)
print("递归法耗时:", recursive_time, "秒")
```
运行以上代码后,你会得到两个方法的计算结果和各自花费的时间。通常情况下,循环方法因为避免了函数调用的开销,在求和这类操作上会比递归方法更快。但对于较小规模的问题,两者差异可能不大;对于大规模或递归深度较大的情况,递归法可能会因栈溢出而性能较差。
阅读全文