整數變換問題 (回溯法)

2021-09-19 08:59:28 字數 832 閱讀 3978

整數變換問題

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時,演算法應當怎麼處理。本題是當出現重複數字,認為無法轉換。...