数的计数
2016-09-03 16:17
225 查看
题目描述
我们要求找出具有下列性质数的个数(包含输入的自然数n):先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:
1. 不作任何处理;
2. 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入
6输出
6思路
1.我们可以发现7的拆分数个数等于6的拆分数个数,8的拆分数个数等于7的拆分数个数加上它一半(4)的拆分数个数的和,所以我们就可以得出当n是偶数时f:=f[n-1]+f[n div 2];当n是奇数时F
:=f[n-1];
2.递归:每一个数都等于他前面的数的和加一f
:=1+f[1]+f[2]…+f[n div 2]
3.在递归时将每一个数储存起来,递归时直接调用;
var a:array[1..1000]of longint; i,n:longint; begin a[1]:=1; readln(n); for i:=2 to n do if odd(i) then a[i]:=a[i-1] else a[i]:=a[i-1]+a[i div 2]; writeln(a ); end.
相关文章推荐
- OpenGl红皮书第六版阅读笔记p107页实例
- 优先队列(堆)
- BroadcastReceiver 广播接收者
- pci_alloc_consistent 配合mmap
- android-topeka学习笔记(一)-----一些不知道的属性
- 门描述符
- Spring容器、Bean配置信息。Bean实现类及应用程序的关系
- No row with the given identifier exists 解决方法
- 我眼中的Window创建/添加/删除/更新过程
- 孤儿进程与僵尸进程[总结]
- 关于编程中的无穷大的一些事
- 架构设计:系统存储(3)——块存储方案(3)
- 对象的三大特性(封装、继承、多态)之------继承性 + 覆写
- 2002年分区联赛普级组之四 过河卒
- 第二十三条:不要在新代码中使用原生类型
- 偏执却管用的10条Java编程技巧
- python中*和**的用法
- JavaScript 冒泡排序和选择排序
- 面试集锦-常量,const, const 对指针的影响
- [POJ2761]Feed the dogs(静态区间第k小,主席树)