整数分隔

原创 2015年07月06日 22:59:54

描述: 

一个整数总可以拆分为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。

 
题目类别:  null 
难度:  初级 
运行时间限制: 10Sec
内存限制: 128MByte
阶段:  入职前练习 
输入:  

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

 
输出:  

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

 

输出有多行,每行一个结果。

 

输入数据如果超出范围,输出-1。

 
样例输入:
7
                   
样例输出:
6
          
完整代码:

#include <iostream>  
using namespace std;  
int search[1000002]={0};
int main()  
{  
	unsigned int maxnum = 1000000;   
	
    int input = 0, i;  
    search[0] = 1, search[1] = 1;  
    for(i=1; i<=500000; i++)  
    {  
        search[2*i] = (search[2*i - 2] + search[i])%1000000000;  
        search[2*i + 1] = search[2*i];  
    }  
    while(cin >>input)  
    {  
	if((input>=1)&&(input<=1000000))  
        {  
            cout<<search[input]<<endl;  
        }  
        else  
        {  
            cout<<-1<<endl;  
        }   
    }  
    return 0;  
} 



版权声明:本文为博主原创文章,未经博主允许不得转载。

题目1117:整数奇偶排序

题目描述: 输入10个整数,彼此以空格分隔。重新排序以后输出(也按空格分隔),要求: 1.先输出其中的奇数,并按从大到小排列; 2.然后输出其中的偶数,并按从小到大排列。 输入: 任意排序的1...
  • hjl243632044
  • hjl243632044
  • 2014年03月17日 16:26
  • 1807

【费用流】危险的迷宫

【问题】     近来发现了一个古老的地下迷宫,已探明该迷宫是一个A行B列的矩阵,该迷宫有N个不同的出口与N个不同的入口,任一单元格不会既为入口又为出口。为了进一步探明与发掘该迷宫,N个考古队员分别从...
  • qq_21841245
  • qq_21841245
  • 2015年02月06日 19:37
  • 411

Hihocoder 1356 分隔相同整数 (贪心)

题目链接:http://hihocoder.com/problemset/problem/1356 时间限制:10000ms 单点时限:1000ms 内存限制:256MB ...
  • kalilili
  • kalilili
  • 2016年08月07日 18:27
  • 395

hihocoder 1356 分隔相同整数(贪心)

描述 给定一个包含N个整数的数组A。你的任务是将A重新排列,使得任意两个相等的整数在数组中都不相邻。 如果存在多个重排后的数组满足条件,输出字典序最小的数组。 这里字典序最小指:首先尽量使第一个...
  • Miracle_ma
  • Miracle_ma
  • 2016年08月21日 15:24
  • 261

[华为机试练习题]14.整数分隔

题目描述: 一个整数总可以拆分为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总...
  • SunnyYoona
  • SunnyYoona
  • 2015年06月30日 10:06
  • 1661

开源库分享__通用数字分隔控件(NumberSeparateEditText)

通用数字分隔控件是用来分隔数字的控件, 能在你的项目中快速的集成, 避免了重复找轮子. 该开源库预设了常见的数字分隔,...
  • Rozol
  • Rozol
  • 2016年07月02日 15:47
  • 793

【MOOC】程序设计入门-C 语言 作业汇总

1.逆序的三位数 #include void vert(int a);int main(){ int n; scanf("%d", &n); vert(n); return 0...
  • Flickrs
  • Flickrs
  • 2015年03月12日 20:31
  • 2314

coursera 中计算概论的第七周 B-06作业

/* 描述 在一个字符串中找出元音字母a,e,i,o,u出现的次数。 输入 输入一行字符串(字符串中可能有空格,请用cin.getline(s,counts)方法把一行字符 串输入到字符数组s中,其中...
  • a871408893
  • a871408893
  • 2014年04月04日 15:01
  • 1612

oracle拆分逗号分隔的字符串

方法一: oracle下字段拆分,字段合并的一种方式oracle下字段拆分,字段合并的一种方式   在数据库处理中,我遇到了设计很让人蛋疼的表。 此表处理一对多关系的方式是:将一个主键对应的多...
  • xyr05288
  • xyr05288
  • 2015年02月10日 15:28
  • 5504

ORACLE 查询多行转单行数据,并且用逗号分隔展示方法

oracle 10g或以上 一个wm_concat函数就可以解决。 如果是oracle 9i以下就有点麻烦了。 表结构如下: NAME          ...
  • fiwrc
  • fiwrc
  • 2017年04月19日 14:57
  • 2159
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:整数分隔
举报原因:
原因补充:

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