整数分隔

原创 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;  
} 



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

相关文章推荐

整数分隔

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

数字分隔(二)

数字分隔(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个遥远的国家,银行为了更快更好的处理用户的订单,决定将一整串的数字按照一定的规则分隔开来,分隔...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

数字分隔(二)

描述 在一个遥远的国家,银行为了更快更好的处理用户的订单,决定将一整串的数字按照一定的规则分隔开来,分隔规则如下: 1、实数的整数部分按照每三个数字用逗号分隔开(整数部分的高位有多余的0时,需先将...

数字分隔(二)

数字分隔(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在一个遥远的国家,银行为了更快更好的处理用户的订单,决定将一整串的数字按照一定的规则分隔开来,...

数字分隔(二)

描述 在一个遥远的国家,银行为了更快更好的处理用户的订单,决定将一整串的数字按照一定的规则分隔开来,分隔规则如下: 1、实数的整数部分按照每三个数字用逗号分隔开(整数部分的高位有多余的0时,需先将...

整数拆分问题详解

问题:  给定一个整数n,要找出n能拆分成多少种不同的若干个数的和与乘积的形式。比如:     4=4             &...

整数划分

整数划分指把一个正整数n写成多个大于等于1且小于等于其本身的整数的和,则其中各加数所构成的集合为n的一个划分。这里我们记n的m划分的个数为f(n,m)。 例如,当n=4时,有5个划分,即 {4},{...

hdu 1028 Ignatius and the Princess III 整数划分+dp 组合

#include #include #include #include #include #include using namespace std; int f[122]; void in...

整数划分学习小记 Poj 1283 Moving Computer + Poj 1664 放苹果

以下第一部分的内容整理自: 整数划分算法原理与实现 - 银河使者 - 博客园 整数划分问题的最基本形式 将一个正整数n拆成一组数连加并等于n的形式,且这组数中的最大加数不大于n。 如6...

整数划分 --- 一个老生长谈的问题 动态规划

原文链接:http://www.cnblogs.com/xiaoxian1369/archive/2011/09/12/2174212.html 1) 练练组合数学能力.   2) 练练递归思想 ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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