题目
我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理:
- 不作任何处理;
- 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
- 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入
1个自然数n(n≤1000)
例:
1 | 6 |
输出
1个整数,表示具有该性质数的个数。
例:
1 | 6 |
解题思路
这个 题目是一个递归问题,递归问题,我们通常考虑两个,一个是递归的是啥(简单点就是循环干嘛了);第二个就是递归的出口是啥。弄懂这两个问题就差不多了。对于这道题,循环的是sum+=f(i);递归出口是 i=n/2;就结束递归的过程。
代码
1 |
|
总结:
这道题目里面可能我们需要学习的就是一个简单的递归函数的调用过程。熟悉一下递归的调用原理。
此代码只是我的个人想法,可能有不完善的地方。各位要是有好的想法,欢迎在评论区留言。