程式設計思維 week10 作業A Game23

2021-10-05 12:59:16 字數 692 閱讀 1429

東東在玩遊戲「game23」。

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

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

輸出從n轉換到m的操作次數,否則輸出-1.

120 51840
7
根據題意,數字n和m應滿足:m=n*2p*3q

,即m/n=2p*3^q。

顯然,m應能夠整除n。若不能整除,則輸出-1並返回;若能,則m/=n。

接著,在m能整除2的情況下不斷除以2。不能整除2後,在m能整除3的情況下不斷除以3。若最終m為1,輸出運算次數;否則,輸出-1並返回。

#include

using

namespace std;

intmain()

m/=n;while

(m%2==0

)while

(m%3==0

)if(m==1)

printf

("%d"

,ans)

;else

printf

("-1");

return0;

}

題目鏈結

程式設計思維與實踐 Week10 作業

給定兩個數n nn和m mm,輸出n nn經過若干次乘2或乘3後轉換為m mm的次數 首先判斷m是否能被n整除,如果能夠整除,將m除以n,之後進行迴圈,每次對m除以2或者除以3,直到m 1為止,若某次迴圈m沒有除以2或3,即次數沒有改變,說明無法轉換。include using namespace ...

程式設計思維與實踐 Week10 作業

b lis lcs c 拿數問題 ii 東東在玩遊戲 game23 在一開始他有乙個數字n,他的目標是把它轉換成m,在每一步操作中,他可以將n乘以2或乘以3,他可以進行任意次操作。輸出將n轉換成m的操作次數,如果轉換不了輸出 1。輸入的唯一一行包括兩個整數n和m 1 n m 5 10 8 輸出從n轉...

SDU程式設計思維Week10 作業 A 簽到題

一開始他有乙個數字n,他的目標是把它轉換成m,在每一步操作中,他可以將n乘以2或乘以3,他可以進行任意次操作。輸入的唯一一行包括兩個整數n和m 1 n m 5 10 8 輸出將n轉換成m的操作次數,如果轉換不了輸出 1。input 1 12051840 output 1 7input 2 4242 ...