数据结构_广东专插本题目:设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目

// 以下是我个人复杂问题简单化的逻辑思路(有问题随时欢迎评论,非常感谢!)

(1) 填 1 解析:m 是自然数之和(n开头加起来的数 = m ), 当m = 1 的时候 ,n 也只能是 1,整个 返回值 也只能是 1。

(2) 填 1 解析:根据 ↑ 当n = 1 的时候,m 是多少 都只有1开头开始加的数,即 1 种方式,所以返回值也为 1 。

然后看到 当 m < n 的时候,返回值 为 f(m,m)

意味着两个数是相等的:以m 开头加起来等于 m 的 m 种方式

也对应了(3)填空前面的判断 m == n

(3) 填 f( m , n - 1 )

解析:1 + f( m , n - 1 )

return 后面有 1 + 也就是说 方式数加 1 ,

当方式数加1的时候,开头数就需要减 1 ,填空的方式数也 减 1,也就是2种方式

原本的开头 n 就成 n-1 , n 开头相加的数还是等于 m 所以 m 不变

最后一个 return 的意思就是 当 m > n 时的返回值

(4) 填 n

解析:f(m,n-1) + f( m-n , n )

这里我采用了例子反推的逻辑推出的

(5)执行程序 f(6,4) = 9

解析:4开头加起来等于6的式子数

  1. 4 + 2

  1. 4 + 1 +1

  1. 3 + 3

  1. 3 + 2 +1

  1. 3 + 1 +1 +1

  1. 2 + 2 + 2

  1. 2 + 2 + 1 + 1

  1. 2 + 1 + 1 + 1 + 1

  1. 1 + 1 + 1 + 1 + 1 + 1


END :编写不易生活不易处处不易,劳烦各位亲们的小手手把赞赞点起来,Thanks ♪(・ω・)ノ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值