前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1415. [NOIP2001]数的计数

1415. [NOIP2001]数的计数

作者头像
attack
发布2018-04-11 11:56:45
7250
发布2018-04-11 11:56:45
举报

☆   输入文件:nums.in   输出文件:nums.out   简单对比 时间限制:1 s   内存限制:256 MB

【题目描述】

  我们要求找出具有下列性质数的个数(包含输入的自然数n):

先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理

l·不作任何处理:

2·在它的左边加上一个自然数,但该自然数不能超过原数的一半;

3·加上数后,继续按此规则进行处理,直到不能再立生自然数为止。

【输入格式】

       自然数n

【输出格式】

       满足条件的数的个数

【样例输入】

6

【样例输出】

6

【数据范围及提示】

       如题中所说,1<=n<=1000

【来源】

思路:

当我第一眼看到这个题的时候我就大吃一惊,因为我夏令营的时候做过原题,但仔细看看好像有些不同,这个只是让你输出最终结果,没有让你输出每种情况。但是我犯了一个错误,就是按照原来做的思路枚举每种情况的方式去把这个题转换成一个类似数据结构的题。但是这道题是有规律的,第i个数,就是前i/2个数所有情况之和,再加上本身…….

代码语言:javascript
复制
 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int main()
 5 {
 6     freopen("nums.in","r",stdin);
 7     freopen("nums.out","w",stdout);
 8     int a[1001],n;
 9     cin>>n;
10     a[1]=1;
11     for(int s=2;s<=n;s++)
12     {
13         a[s]=0;
14         for(int i=1;i<=s/2;i++)
15         {
16             a[s]+=a[i];
17         }
18         a[s]++;
19     }
20     cout<<a[n];
21     return 0;
22 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档