C++——加1乘2平方



#include
#include
using namespace std;
queue a;
int m,n;
int used[10001]={0};
int step[10001];
void init();
int bfs();
int moveto(int u,int dire);
int main()
{
 cin>>m>>n;
 int num;
    init();
    num=bfs();
    cout<     return 0;
}
void init()
{
 a.push(m);
 used[m]=1;
 step[m]=0;
}
int bfs()
{
 int u,v,i;
 while(!a.empty())
 {
  u=a.front();
  a.pop();
  for(i=0;i<3;i++)
  {
   v=moveto(u,i);
   if(v==n)
   {
    return(step[u]+1);
   }
   else if(v<=n&&used[v]==0)
   {
    a.push(v);
    used[v]=1;
    step[v]=step[u]+1;
   }
  }
 }
}
int moveto(int u,int dire)
{
 if(dire==0)
 {
  return(u+1);
 }
 else if(dire==1)
 {
  return(2*u);
 }
 else
 {
  return(u*u);
 }
}

你可能感兴趣的:(在很久很久以前)