整數變換問題
time limit: 1000 ms memory limit: 65536 kib
problem description
整數變換問題。關於整數i的變換f和g定義如下:f(i)=3i;
試設計乙個演算法,對於給定的2 個整數n和m,用最少的f和g變換次數將n變換為m。例如,可以將整數15用4 次變換將它變換為整數4:4=gfgg(15)。當整數n不可能變換為整數m時,演算法應如何處理?
對任意給定的整數n和m,計算將整數n變換為整數m所需要的最少變換次數。
input
輸入資料的第一行有2 個正整數n和m。n≤100000,m≤1000000000。
output
將計算出的最少變換次數以及相應的變換序列輸出。第一行是最少變換次數。第2 行是相應的變換序列。
sample input
15 4
sample output
4gfgg
hint
source
#includeusing namespace std;
int cnt = 0,cn = 0;
char a[10010];
int fun(int i, int sum) //分別計算兩種函式
bool traceback(int n, int m, int dept)
}return false;
}int main()
cout
cout
}
整數變換問題 回溯法
整數變換問題 關於整數i 的變換f 和g 定義如下 f i 3i g i i 2。試設計乙個演算法,對於給定的2 個整數n 和m,用最少的f 和g 變換次數將n 變換為m。例如,可以將整數15 用4 次變換將它變換為整數4 4 gfgg 15 當整數n 不可能變換為整數m 時,演算法應如何處理?這是...
整數變換問題 回溯法
整數變換問題 整數i的兩種變換定義為f i 3i,g i i 2 向下取整 設計乙個演算法求給定兩個整數a和b,用最少次數的a和b變換將整數a變換為b 例如4 gfgg 15 題目分析 觀察f和g兩個函式發現,f總是使得自變數x變大,g總是使得自變數x變小。因此我們在決定讓x執行哪個函式之前必須先判...
整數變換問題 回溯演算法 C
問題描述 整數i的兩種變換定義為 f i 3i,g i i 2 向下取整 設計乙個演算法求給定兩個整數n和m,用最少次數的f 和 g變換將整數n變換為m 例如 可以將整數15通過4次變換將它變成4,4 gfgg 15 當整數n不可能轉換為m時,演算法應當怎麼處理。本題是當出現重複數字,認為無法轉換。...