//1316 【例4.6】数的计数(Noip2001)
//提交,未通过,测试点10:运行超时
//洛谷里 P1028 数的计算 发现数据有更新,除了原有5个数据外,又增加了15个数据,提交,这15个数据全是TLE
//看来,递归是没用了,要递推。采用递归编写的代码,获得以下数据
//n ans
//1 1
//2 2
//3 2
//4 4
//5 4
//6 6
//7 6
//8 10
//9 10
//10 14
//11 14
//发现i是奇数a[i]=a[i-1],i是偶数a[i]=a[i-1]+a[i/2];
//这总方法,属于纯模拟的递推
//从编程角度,该题递归比递推容易理解
#include <stdio.h>
int a[1100];
int main(){
int n,i;
scanf("%d",&n);
a[1]=1,a[2]=2;
for(i=3;i<=n;i++)
if(i%2==1)a[i]=a[i-1];//奇数
else a[i]=a[i-1]+a[i/2];//偶数
printf("%d",a[n]);
return 0;
}
#include <stdio.h>
int cnt=1;//1表示加上自己本身
void f(int k){
int i;
if(k==0)return;
for(i=1;i<=k/2;i++)cnt++,f(i);
}
int main(){
int n;
scanf("%d",&n);
f(n);
printf("%d",cnt);
return 0;
}
2814





