华师一附中OI组

标题: P1028 数的计算 [打印本页]

作者: admin    时间: 2018-5-5 18:50
标题: P1028 数的计算
https://www.luogu.org/problemnew/show/P1028
题目描述
我们要求找出具有下列性质数的个数(包含输入的自然数n):

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

不作任何处理;

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

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

输入输出格式
输入格式:
一个自然数n(n<=1000)

输出格式:
一个整数,表示具有该性质数的个数。

输入输出样例
输入样例#1:
6
输出样例#1:
6
说明
满足条件的数为

6,16,26,126,36,136
作者: 黄煦喆    时间: 2018-5-5 19:10
  1. #include<iostream>
  2. using namespace std;
  3. int f[10001],n;
  4. int main()
  5. {
  6.     cin>>n;
  7.     for(int i=1;i<=n/2;i++)
  8.     {
  9.         f[i]++;
  10.         for(int j=1;j<=i/2;j++)f[i]+=f[j];
  11.     }
  12.     f[n]++;
  13.     for(int i=1;i<=n/2;i++)f[n]+=f[i];
  14.     cout<<f[n];
  15.     return 0;
  16. }
复制代码

作者: 张笑宇    时间: 2018-5-10 22:13
  1. #include<iostream>
  2. using namespace std;
  3. int n,i,j,a[1010];
  4. int main()
  5. {
  6.     cin>>n;
  7.     a[1]=1;
  8.     for (i=2;i<=n;i++)
  9.     {
  10.         for (j=1;j<=i/2;j++) a[i]+=a[j];
  11.         a[i]++;
  12.     }
  13.     cout<<a[n];
  14.     return 0;
  15. }

  16. /*
  17. 1  1 a[1]=1
  18. 2  2 a[2]=2=a[1]+1
  19. 3  2 a[3]=2=a[1]+1
  20. 4  4 a[4]=4=a[1]+a[2]+1
  21. 5  4 a[5]=4=a[1]+a[2]+1
  22. 6  6 a[6]=6=a[1]+a[2]+a[3]+1
  23. 7  6 a[7]=6=a[1]+a[2]+a[3]+1
  24. 8 10 a[8]=10=a[1]+a[2]+a[3]+a[4]+1
  25. */
复制代码

作者: 倚窗倾听风吹雨    时间: 2018-7-2 11:20
  1. #include<iostream>
  2. using namespace std;
  3. int n,i,j,k,a[1001],s;
  4. int main()
  5. {
  6.     cin>>n;
  7.     for(i=1;i<=n;i++)
  8.     {
  9.         for(j=1;j<=i/2;j++)
  10.         {
  11.             a[i]+=a[j];
  12.         }
  13.         a[i]++;
  14.     }
  15.     cout<<a[n];
  16.     return 0;
  17. }
复制代码





欢迎光临 华师一附中OI组 (http://hsyit.cn/) Powered by Discuz! X3.2