1383 整数分解为2的幂 

任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量!由于方案数量较大,输出Mod 1000000007的结果。

比如N = 7时,共有6种划分方法。

7=1+1+1+1+1+1+1
  =1+1+1+1+1+2
  =1+1+1+2+2
  =1+2+2+2
  =1+1+1+4
  =1+2+4

Input

输入一个数N(1 <= N <= 10^6)

Output

输出划分方法的数量Mod 1000000007

Input示例

7

Output示例

6

问题链接:51Nod-1383 整数分解为2的幂

问题分析

这个问题与OEIS中的一个数列相关联,数列的序号是A018819。该数列的名字就是Binary partition function: number of partitions of n into powers of 2。数列问题的关键是该数列的通项公式,该数列的通项公式是条件递推式。有关该数列的通项公式,参见程序。

这个问题打表是必要的,用函数init()来实现。

程序说明:(无)

题记:(略)

参考链接:(无)

AC的C++语言程序如下:

/* 51Nod-1383 整数分解为2的幂 */#include <bits/stdc++.h>using namespace std;const int N = 1e6;
const int MOD = 1e9 + 7;
int f[N + 1];void init()
{f[0] = 1;f[1] = 1;for(int i = 2; i <= N; i++)if(i % 2)f[i] = f[i - 1];elsef[i] = (f[i - 1] + f[i >> 1]) % MOD;
}int main()
{init();int n;while(~scanf("%d", &n))printf("%d\n", f[n]);return 0;
}

51Nod-1383 整数分解为2的幂【数列】相关推荐

  1. 51nod 13831048 整数分解为2的幂 [递推]【数学】

    题目连接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1048 ---------------------------- ...

  2. 51Nod 1048 1383 整数分解为2的幂

    任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量! 比如N = 7时,共有6种划分方法. 7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1+2+2+ ...

  3. 51Nod 13831048 整数分解为2的幂

    题目 任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量. V1:n≤106n≤106n≤10^6.要对答案模1e9+71e9+71e9+7. V2:n≤1030n≤1030n≤10^{ ...

  4. 【51NOD 1048】【51NOD 1383】整数分解为2的幂 V2

    Description 任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量! 比如N = 7时,共有6种划分方法. 7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1 ...

  5. [51nod13831048]整数分解为2的幂

    题目大意 任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量! 比如N = 7时,共有6种划分方法. 7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1 ...

  6. [递推] 51Nod1383 整数分解为2的幂

    简单的递推,类似背包那种加 11 或翻倍的思路. 写这题其实只是水一篇 blogblog ,其实注意还是要做 51nod1048 加强版-- #include<cstdio> #inclu ...

  7. 数论 —— 整数分解

    [概述] 整数分解目前仍是世界级难题,是非常重要的研究方向,其有很多种算法,性能上各有差异,本文仅介绍试除法.Fermat 算法.Pollard Rho 算法. [试除法] 试除法也叫穷举法,是整数分 ...

  8. VJ 1033 整数分解(版本2)

    描述 整数分解(版本2) 一个正整数可以分解成若干个自然数之和.请你编一个程序,对于给出的一个正整数n(1<=n<=1500),求出满足要求的分解方案,并使这些自然数的乘积m达到最大. 例 ...

  9. JavaScript实现判断整数是否为2的幂isPowerOfTwo算法(附完整源码)

    JavaScript实现判断整数是否为2的幂isPowerOfTwo算法(附完整源码) isPowerOfTwo.js完整源代码 isPowerOfTwo.js完整源代码 /*** @param {n ...

最新文章

  1. CALayer的基本操作
  2. SpringCloud服务注册启动的时候报错(com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException)
  3. python这个软件学会能做什么工作-工作三年却被实习生抢了饭碗,学会Python到底有多吃香?...
  4. python是干什么用的视频-python基础教程千锋最新视频学完之后可以做什么
  5. 科沃斯机器人双十一全渠道成交额超7亿 两大爆款单品携手破亿
  6. 10个程序员才懂的灯谜,你能猜对几个?
  7. JAVA 常用框架和工具
  8. php如何将mysql数据库中的admin字段赋值给session_转php中使用session_set_save_handler()函数把session保存到MySQL数据库实例...
  9. 【报告分享】2021年中国人工智能产业研究报告:数字经济时代的产业升级探索.pdf(附下载链接)...
  10. 4核处理器_4核、6核以及8核 游戏玩家如何按需购买CPU
  11. [转载] 重新抛出异常与 public Throwable fillInStackTrace()
  12. SQLServer启动和关闭bat脚本
  13. 让我小猪佩奇教你如何进行潇洒装逼
  14. 计算出 3 至 1000 范围内最大的十个素数,放入数组中,并计算出其累加和。
  15. The remote system refused the connection.
  16. python函数知识七 闭包、装饰器一(入门)、装饰器二(进阶)
  17. 在 ABT 节点部署 RPG 制作大师游戏指南 | ArcBlock 博客
  18. 专业人员选择关键词的标准和原则
  19. 在线ICO转换器--网站专用
  20. Windows 10 耳机插入前面板没反应的解决方案

热门文章

  1. 简书留言收费可行性评估
  2. spring.net与OracleODP结合时发生的版本问题
  3. 本地缓存需要高时效性怎么办_Android性能优化之关于缓存的构思
  4. Sprin boot 加载位置顺序
  5. html5 过渡时间,CSS3 对过渡(transition)进行调速以及延时
  6. linux系统重启方式,查看linux系统重启的命令和方式
  7. android播放背景音乐,Android通过startService播放背景音乐
  8. java redis jar_Java使用Redis
  9. python自定义抛出异常信息_浅谈python抛出异常、自定义异常, 传递异常
  10. python-两种方法实现:从字符串中找出 出现次数最多的 字母和 对应出现的个数