[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;
}
//跟阶乘的思想有点相同

浙公网安备 33010602011771号