"算法设计与分析实验报告1:循环递归计算与问题求解"
需积分: 0 175 浏览量
更新于2024-03-25
1
收藏 1.56MB DOC 举报
```python
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
def calculate_series(n):
sum = 0
flag = 1
for i in range(1, n+1):
flag *= -1
product = 1
for j in range(1, 2*i):
product *= j
sum += flag * (1/product)
return sum
print("计算1/1! - 1/3! + 1/5! - 1/7! ... 的结果是:", calculate_series(5))
def find_perfect_numbers(limit):
for num in range(1, limit+1):
divisors_sum = 0
for i in range(1, num):
if num % i == 0:
divisors_sum += i
if divisors_sum == num:
print(num, "是一个完数")
find_perfect_numbers(1000)
def integer_partition(n, i, out):
if n == 0:
print(out)
return
elif n < 0:
return
while i <= n:
integer_partition(n-i, i, out + [i])
i += 1
def combination_helper(n, r, out, start, result):
if r == 0:
result.append(out)
return
for i in range(start, n+1):
combination_helper(n, r-1, out+[i], i+1, result)
def find_combinations(n, r):
result = []
combination_helper(n, r, [], 1, result)
return result
print("1, 2, 3中取2个数的组合是:", find_combinations(3, 2))
```
通过上面的代码,我们实现了四个问题的求解:
1. 通过循环和递归计算了1/1! - 1/3! + 1/5! - 1/7! ... 的结果。
2. 找出了1000以内所有的完数。
3. 实现了对正整数n的划分,输出了所有可能的分划方式。
4. 用循环和递归方式找出了n个自然数1,2,3,……,n中r个数的组合。
2010-03-24 上传
2009-10-24 上传
2008-11-06 上传
2023-06-28 上传
2018-05-07 上传
椰椰燕麦奶
- 粉丝: 510
- 资源: 2
最新资源
- Min-f-rste-hjemmeside
- turkerbulut.github.io
- Digital-monster-Program:在PC上播放数字怪物
- GenFileData.zip
- Developer Excuses-crx插件
- UdemyTest1:从 AS 创建 repos
- 深蓝色商务UI设计公司企业模板下载4910.zip
- Mybasket-backend
- sclock:电池供电的从时钟驱动器,围绕ATmega328P构建
- ayakotm-crx插件
- LEMS,c#录amr源码,c#
- 仿新乡医学院三全学院3g触屏版手机wap学校网站模板_网站开发模板含源代码(css+html+js+图样).zip
- Express-Js-Gearman-样本
- p1.sreshtanelluri
- class-33
- 使用 MATLAB 和遗传算法和直接搜索工具箱进行优化:在 2004 年 9 月 16 日举行的网络研讨会中使用的 M 文件。-matlab开发