用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。
如果只有5個砝碼,重量分別是1,3,9,27,81
則它們可以組合稱出1到121之間任意整數重量(砝碼允許放在左右兩個盤中)。
本題目要求程式設計實現:對使用者給定的重量,給出砝碼組合方案。
例如:使用者輸入:
5程式輸出:
9-3-1
使用者輸入:
19程式輸出:
27-9+1
要求程式輸出的組合總是大數在前小數在後。
可以假設使用者的輸入的數字符合範圍1~121。
模擬幾組稱重資料, 設整數n的排列方式為f(n)
f(1) = 1
f(2) = 3 - 1 = 3 - f(1)
f(3) = 3
f(4) = 3 + f(1)
f(5) = 9 - 3 - 1 = 9 - f(5)
主要要發現 n 與
的關係
**:
// 將+,-號調換, 相當於式子 *-1, 順序不能變
static string reve
(string s)
static string f
(int n)
if(n == s)
return s +"";
else
if(n <= s/2)
else
}
注意的地方是, 需要變符號
進製解法相對來說更好理解一些
其實都是3的次方
那我們就可以通過將乙個數字轉換成3進製來表示這個數字
例如28, 用3進製表示就是1001
, 因此等於28 = 3^3 + 3^0 = 27 + 1
但要注意3進製裡會存在2, 這時需要將2轉換, 在使用短除法遇到餘數為2的情況的時候, 可以將餘數2轉換為-1, 商+1
例如19, 原來用3進製表示是201
轉換以後可以表示為1-101 = 3^3 - 3^2 + 3^0 = 27 - 9 + 1
**:
static string f2
(int n)
;int
arr =
newint
[100];
int i =0;
while
(n !=0)
i++;}
string s ="";
for(
int j = i; j >=
0; j--
) s +=
(t[j]
*flag);}
return s;
}
藍橋杯訓練 天平稱重
用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。如果只有5個砝碼,重量分別是1,3,9,27,81 則它們可以組合稱出1到121之間任意整數重量 砝碼允許放在左右兩個盤中 本題目要求程式設計實現 對使用者給定的重量,給出砝碼組合方案。例如 使用者輸入 5程式輸出 9 3 1 使用者輸入...
藍橋杯 天平稱重
用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。如果只有5個砝碼,重量分別是1,3,9,27,81 則它們可以組合稱出1到121之間任意整數重量 砝碼允許放在左右兩個盤中 本題目要求程式設計實現 對使用者給定的重量,給出砝碼組合方案。例如 使用者輸入 5程式輸出 9 3 1 使用者輸入...
藍橋杯考試 找規律 天平稱重
題目 用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。如果只有5個砝碼,重量分別是1,3,9,27,81 則它們可以組合稱出1到121之間任意整數重量 砝碼允許放在左右兩個盤中 本題目要求程式設計實現 對使用者給定的重量,給出砝碼組合方案。例如 使用者輸入 5程式輸出 9 3 1 使用...