• 整数分隔


    描写叙述: 

    一个整数总能够拆分为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 
    难度:  0基础 
    执行时间限制: 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;  
    } 



  • 相关阅读:
    memcached全面剖析
    Zabbix中文使用手册
    lombok
    guava cache
    linux 文件检索操作
    mysql慢查询
    碎片脚本注解(后续整理)
    Docker 目录挂载详述
    jenkins 添加 sonraqube java&vue项目记录
    Ansible unarchive模块
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/8367231.html
Copyright © 2020-2023  润新知