"算法设计与分析实验报告1:循环递归计算与问题求解"
需积分: 0 136 浏览量
更新于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个数的组合。
2009-05-29 上传
2013-01-03 上传
2018-05-07 上传
2023-06-28 上传
2008-11-06 上传
2009-10-24 上传
2018-06-26 上传
椰椰燕麦奶
- 粉丝: 464
- 资源: 2
最新资源
- 俄罗斯RTSD数据集实现交通标志实时检测
- 易语言开发的文件批量改名工具使用Ex_Dui美化界面
- 爱心援助动态网页教程:前端开发实战指南
- 复旦微电子数字电路课件4章同步时序电路详解
- Dylan Manley的编程投资组合登录页面设计介绍
- Python实现H3K4me3与H3K27ac表观遗传标记域长度分析
- 易语言开源播放器项目:简易界面与强大的音频支持
- 介绍rxtx2.2全系统环境下的Java版本使用
- ZStack-CC2530 半开源协议栈使用与安装指南
- 易语言实现的八斗平台与淘宝评论采集软件开发
- Christiano响应式网站项目设计与技术特点
- QT图形框架中QGraphicRectItem的插入与缩放技术
- 组合逻辑电路深入解析与习题教程
- Vue+ECharts实现中国地图3D展示与交互功能
- MiSTer_MAME_SCRIPTS:自动下载MAME与HBMAME脚本指南
- 前端技术精髓:构建响应式盆栽展示网站