整数拆分

原创 2015年06月27日 22:12:29

题目描述

一个整数总可以拆分为2的幂的和,例如:
7=1+2+4
7=1+2+2+2
7=1+1+1+4
7=1+1+1+2+2
7=1+1+1+1+1+2
7=1+1+1+1+1+1+1
统共有六种不合的拆分体式格式。
再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。
用f(n)默示n的不合拆分的种数,例如f(7)=6.
请求编写法度,读入n(不跨越1000000),输出f(n)%1000000000。

输入:

每组输入包含一个整数:N(1<=N<=1000000)。

输出:

对于每组数据,输出f(n)%1000000000。

样例输入:

7

样例输出:

6

分析

对于奇数n=2k+1:它的拆分的第一项必然是1,推敲去掉这个1,其实就一一对应于
2k的拆分,是以f(2k+1)=f(2k).

对于偶数n=2k:推敲有1和没有1的拆分。有1的拆分,与(2k-1)的拆分一一对应,与上方奇数的景象
来由雷同;没有1的拆分,将每项除以2,正好一一对应于k的所有拆分。是以f(2k)=f(2k-1)+f(k).

须要重视f(n)会很大,不要溢出了。终极成果只请求除以十亿的余数,在int的默示局限内,
是以不须要大数运算。重视余数的性质:(a+b)%m == (a%m+b%m)%m,所以只要对每个中心
成果也都取余数,就不会有溢出的题目,且不改变终极输出成果。

#include <stdio.h>
int f[1000001];
int main()
{
    int i,n;
    while(scanf("%d",&n)!=EOF)
    {
        f[0]=1;
        f[1]=1;
        for(i=2;i<=n;i++)
        {
            if(i%2==0)
                f[i]=(f[i-1]+f[i/2])%1000000000;
            else
                f[i]=f[i-1];
        }
        printf("%d\n",f[n]);
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

整数拆分

题目: 一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1...

九度OJ 1084 整数拆分

题目地址:http://ac.jobdu.com/problem.php?pid=1084 题目描述: 一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 ...
  • JDPlus
  • JDPlus
  • 2014年01月28日 10:36
  • 2747

整数拆分的两种解法

前几天在算法书上看到一个整数拆分的题目,觉得挺有意思,记录如下:   题目一:给定一个整数n,输出这个整数拆分的可能总数 例如:n==6有 6 5+1 4+2    4...
  • wl23301
  • wl23301
  • 2014年02月22日 17:20
  • 671

【Java学习之代码学习】 Prog09_整数分解因式

每日一题:题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

拆分5位整数

  • 2013年12月08日 09:53
  • 401B
  • 下载

整数拆分并逆置

  • 2012年10月17日 23:00
  • 239B
  • 下载

HDU 1398 Square Coins (母函数-整数拆分变形)

Square Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T...

正整数拆分问题

  • 2016年01月04日 11:56
  • 433B
  • 下载

算法回忆录:母函数解决整数拆分

省略了很多内容,所以需要一定基础才可阅读。主要为了说清母函数如何解决此问题。 整数拆分: 1、整数拆分可以理解为苹果放盘子问题(把N个苹果放在M个盘子里有多少种方法),只是这是相当于把N个苹果放在...

hdu 1028 Ignatius and the Princess III(整数拆分,母函数或dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1028 题意:整数拆分,拆分成正整数的和的方案数。 解题方案:母函数或dp。 方法一:母函数。与上一篇博...
  • mr_zj_
  • mr_zj_
  • 2017年04月03日 22:19
  • 120
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:整数拆分
举报原因:
原因补充:

(最多只允许输入30个字)