题解:P1028 [NOIP 2001 普及组] 数的计算
shinzAnmono · · 题解
设
直接循环递推求解是
设
#include<iostream>
#include<algorithm>
const int sz=1010;
int f[sz],g[sz];
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int n;
std::cin>>n;
f[1]=g[1]=1;
for(int i=2;i<=n;i++)f[i]=g[i/2]+1,g[i]=g[i-1]+f[i];
std::cout<<f[n]<<"\n";
return 0;
}