天天看點

程式設計思維與實踐 Week10 作業 A 簽到題

題目描述:

東東在玩遊戲“Game23”。

在一開始他有一個數字n,他的目标是把它轉換成m,在每一步操作中,他可以将n乘以2或乘以3,他可以進行任意次操作。輸出将n轉換成m的操作次數,如果轉換不了輸出-1。

input:

輸入的唯一一行包括兩個整數n和m(1<=n<=m<=5*10^8).

output:

思路:

#include<iostream>
using namespace std;
int n,m,ans=-1;
void f(int x,int c)
{
  if(x==m)
  ans=c;
  if(x>m) return;
  f(x*2,c+1);
  f(x*3,c+1);
}
int main()
{
  cin>>n>>m;
  f(n,0);
  cout<<ans;
  return 0;
}