博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于小范围整数N拆解成2的幂相加的个数
阅读量:4678 次
发布时间:2019-06-09

本文共 813 字,大约阅读时间需要 2 分钟。

http://www.cnblogs.com/skyiv/archive/2010/03/27/1698550.html

关键点在于通过记录一个数被分解的方案中包不包含1来考虑。

得出结论有:

f[2*N+1] = f[2*N]

f[2*N] = f[2*N-1] + f[N]
f[2*N] = f[0]+f[1]+...+f[N]

代码如下:

#include 
#include
#include
#include
#include
using namespace std;const int MaxN = 100;int f[MaxN+5];int sum[MaxN+5];int N;void init() { f[0] = 1, f[1] = 1, f[2] = 2; sum[0] = 1, sum[1] = 2, sum[2] = 5; for (int i = 3; i <= MaxN; i += 2) { f[i] = f[i-1] = sum[i/2]; sum[i-1] = sum[i-2] + f[i-1]; sum[i] = sum[i-1] + f[i]; }}int main() { init(); while (scanf("%d", &N) != EOF) { printf("%d\n", f[N]); } return 0;}

 

转载于:https://www.cnblogs.com/Lyush/archive/2013/05/29/3106177.html

你可能感兴趣的文章
单页面应用程序(SPA)的优缺点
查看>>
http请求和http响应详细解析
查看>>
Centos 配置eth0 提示Device does not seem to be present
查看>>
OS开发入门教程(1)
查看>>
arduino 驱动电调
查看>>
一个游标的性能问题
查看>>
JMeter学习-2 JMeter环境搭建
查看>>
SQL SERVER 2012疑难问题解决方法
查看>>
关于Android RenderScript 的详细说明和一些实用文档
查看>>
POJ1051 P,MTHBGWB
查看>>
士兵队列训练问题
查看>>
js时间戳怎么转成日期格式
查看>>
div宽度设置无效问题解决
查看>>
【ArcGIS Server 开发系列】Flyingis六大系列讲座精品PDF奉献
查看>>
SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据...
查看>>
3大主流NoSQL数据库性能对比测试报告
查看>>
pandas.DataFrame对行和列求和及添加新行和列
查看>>
【转载】后缀自动机学习总结
查看>>
YTU 2896: J--Zipper
查看>>
jQuery 源码分析 7: sizzle
查看>>