A8049
2025-05-02 10:02:24
发布于:江苏
1阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int vis[1000005]={},n,k,x;
queue<int>q;
int main(){
memset(vis,-1,sizeof(vis));
cin>>n>>k;
vis[n]=0;
q.push(n);
while(q.size()){
x=q.front();
q.pop();
if(x==k){
cout<<vis[x];
break;
}
if(vis[x-1]==-1&&x-1>=0){
vis[x-1]=vis[x]+1;
q.push(x-1);
}
if(vis[x+1]==-1&&x+1<=100000){
vis[x+1]=vis[x]+1;
q.push(x+1);
}
if(vis[x*2]==-1&&x*2<=100000){
vis[x*2]=vis[x]+1;
q.push(x*2);
}
}
return 0;
}
这里空空如也
有帮助,赞一个