题解(跪求cookiebus 不要删除 )
06wuyanjun
2023-04-15 14:55:55
2023-10-05 16:02:40
18
返回题目
这是一道经典的dp题,当然也可以用贪心做,这里介绍这两种方法
1.dp
2.贪心
#include<bits/stdc++.h>
using namespace std;
int f[1000010];
int main()
{
int n;
cin>>n;
f[1]=1;
for(int i=2;i<=n;i++)
{
if(i%2==0)f[i]=min(f[i/2],f[i-1])+1;
else f[i]=f[i-1]+1;
}
cout<<f[n];
}
#include<bits/stdc++.h>
using namespace std;
int ans=1;
void dfs(int n)
{
if(n==1)return;
else if(n%2==0)
{
ans++;
dfs(n/2);
}
else ans++,dfs(n-1);
}
int main()
{
int n;
cin>>n;
if(n==0)
{
cout<<0;
return 0;
}
dfs(n);
cout<<ans;
}
{{ vote && vote.total.up }}