#include<bits/stdc++.h>
using namespace std;
queue<int> a,cs;
int vis[1000001];
void bfs(int n){
a.push(1),cs.push(0);
while(!a.empty()){
int nx=a.front()+1;
if(nx<=n&&vis[nx]==0) {
if(nx==n){
cout<<cs.front()+1;
return;
}
vis[nx]=1;
a.push(nx);
cs.push(cs.front()+1);
}
nx=a.front()*2;
if(nx<=n&&vis[nx]==0) {
if(nx==n){
cout<<cs.front()+1;
return;
}
vis[nx]=1;
a.push(nx);
cs.push(cs.front()+1);
}
a.pop();
cs.pop();
}
}
int main(){
int n;
cin>>n;
bfs(n);
}
咋办