- 博客(3)
- 收藏
- 关注
原创 pta数字组合问题
实际上是f(1,2)里的情况,重复了,在取1逻辑结束后之后的取值逻辑中不能出现1,可以通过加法交换律来解释,将后面取得的1调换在前面来,就不难发现为什么(可以自己画图演算一下),因此,保证start(取值量)的递增是排重的必须条件。因为是要组合列出来的1,所以剩余值是需要大于1的),此次也可以直接取值2,即f(1,2)->f(2,0),剩余值为零,组合符合。f(1,3)->f(2,1),到这里剩余值为1,接下来该是f(2,1)->f(1,0)吗?现在已经知道排重条件,排列方法,思考可得出上述代码。
2025-03-04 21:03:33
770
原创 pta第n项斐波那契数的计算
那么需要声明一个全局数组,容量足够大就行,因为题目里说了n<=91,也就是说f(n)的存储最多不会超过91个数,因此本人声明的数组容量为100(看100顺眼);在递归中会重复计算f(n)的值,因此只需要把首次递归求的f(n)的值储存起来,每次递归判断该f(n)是否存储过,有则直接引用,会节省大量时间。因为需要判断是否存储过f(n),那么arr[n]需要一个存储一个确切的值进行比较,在声明时需要进行赋值,后续判断重新赋值即可。参考如上代码,能计算但效率很低,会不给过。// f(n)为计算斐波那契数列的函数。
2025-03-01 20:48:54
478
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人