NEUQ 1213: 半数集问题

来源:互联网 发布:有线网络电视怎么连接 编辑:程序博客网 时间:2024/05/22 14:43

1213: 半数集问题

时间限制: 1 Sec  内存限制: 128 MB

题目描述

问题描述: 
给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下。 
(1) n∈set(n); 
(2) 在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半; 
(3) 按此规则进行处理,直到不能再添加自然数为止。 
例如,set(6)={6,16,26,126,36,136}。半数集set(6)中有6 个元素。 
注意半数集是多重集。 

编程任务: 
对于给定的自然数n,编程计算半数集set(n)中的元素个数。

输入

输入数据m行,每行给出一个整数n。(0〈n〈1000)

输出

输出只有m行,每行给出半数集set(n)中的元素个数。

样例输入

699

样例输出

69042

提示

来源

吉首大学软件学院


分析:水题,先 打表计算出所有的答案,然后根据输入的数直接输出。


CODE:

#include <iostream>using namespace std; int main(){    int n,dp[1000]={0};    for(int i=1;i<1000;i++){        for(int j=1;j<=i/2;j++){            dp[i]+=dp[j];        }        dp[i]+=1;    }    while(cin>>n){        cout<<dp[n]<<endl;    }    return 0;}




0 0