[2001年NOIP普及组] 数的计算

[2001年NOIP普及组] 数的计算

  • 分析:根据题意,本题应用了递推,最重要的一点是找到相邻数据间的关系(递推式),在给出的n中,n/2得到的是他前一个数据(可能不止是前一个数据),前一个数包含的是他本身所符合题意的数的数量,再根据他前一个数据得到,再往前一个数据,就这样每轮都会叠加,从而得到递推式。
  • #include<iostream>
    #include<cstdio>
    using namespace std;
    int a[1001];
    int main()
    {
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)//n正常循环
    {
    for(int j=1;j<=i/2;j++)//每次都是i(当前数)的一半
    {
    a[i]=a[i]+a[j];//现数等于原数加上原数的一半
    }
    a[i]++;//包括自身
    }
    cout<<a[n];//最后一个循环的数就是答案
    return 0;
    }
    //跟阶乘的思想有点相同

posted @ 2022-08-14 21:17  4lovls  阅读(64)  评论(0)    收藏  举报