数的拆分 递归做法(xdoj 1096)

博客介绍了如何使用递归解决西电oj 1096问题,即数的拆分。通过递推公式和边界条件分析,详细解析了递归解题思路,并给出了具体例子和代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

比赛时候看到这道题的我的内心是崩溃的啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
清晰的记得数据结构课上老师一步一步给推过这个问题的递推式,然而我忘记了啊啊啊啊啊啊啊啊啊啊啊啊
果然出来混都是要还的,不好好听课的结果就是只能自己手推一遍。。。。好了进入正题。

先贴题目 西电oj 1096 http://acm.xidian.edu.cn/problem.php?id=1096

先举几个例子
1 的拆分数 1
##1
2 的拆分数 2
## 1+1
## 2
3 的拆分数 3
## 1+1+1
## 1+2
## 3
4 的拆分数 5
## 1+1+1+1
## 1+1+2
## 1+3
## 2+2
## 4
5 的拆分数 7
## 1+1+1+1+1
## 1+1+1+2
## 1+2+2
## 1+1+3
## 2+3
## 1+4
## 5
6 的拆分数 11
## 1+1+1+1+1+1
## 1+1+1+1+2
## 1+1+2+2
## 2+2+2
## 3+1+1+1
## 3+2+1
## 3+3
## 4+1+1
## 4+2
## 5+1
## 6
7 的拆分数 15 。。。

设n为待拆分的数。m为 拆分组合中的最大数。f(n,m)为待求的拆分数
f(6,6)=11
f(6,5)=10
f(6,4)=9
f(6,3)=7
f(6,2)=4

好了,接下来考虑边界情况。
1。n==1或者m==1时 f(n,m)=1
2。n==m时 f(n,m)= f(n,n-1)+1 //eg:f(6,6)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值