整数划分问题 递归

这篇博客探讨了一个递归函数`int q(int n, int m)`,该函数用于将整数n进行划分,其中最大可使用的数为m。当n小于1或m小于1时返回0;若n等于1或m等于1,则返回1。如果n小于m,函数会递归调用自身,而当n等于m时,函数会计算在不使用m的情况下所有可能的划分并返回结果。文章深入解析了递归过程和不同情况下的处理策略,对于理解和实现此类问题提供了有价值的见解。
摘要由CSDN通过智能技术生成

将整数n划分,划分时最大可用的数为m

int q(int n, int m) {
	if ((n < 1 || (m < 1)))
		return 0;
	if ((n == 1) || (m == 1))            
		return 1;
	if (n < m)
		return q(n, n);
	if (n == m)
		return q(n, m - 1) + q(n - m, m);
	return q(n, m - 1) + q(n - m, m);    //n-m中能取的最大数同样是m     
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值