用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。
如果只有5個砝碼,重量分別是1,3,9,27,81
則它們可以組合稱出1到121之間任意整數重量(砝碼允許放在左右兩個盤中)。
本題目要求程式設計實現:對使用者給定的重量,給出砝碼組合方案。
例如:使用者輸入:
5程式輸出:
9-3-1
使用者輸入:
19程式輸出:
27-9+1
要求程式輸出的組合總是大數在前小數在後。
可以假設使用者的輸入的數字符合範圍1~121。
剛開始說實話,本來想用爆搜,但是寫著寫著發現用爆搜來解本題,真是太蠢了;
解題思路:首先題目給的這5個砝碼重量:1,3,9,27,81;就是解題的關鍵,他們都3 的階乘得到的,如:3^0,3^1,3^2,3^3,3^4;那麼如果把輸入的n轉成3進製,直接對應權值,來輸出算式,這題就很簡單了。當然變為3進製,如果餘數為2,則變為-1,商+1;下面上**:
#includeusing namespace std;
int main()
;//最大的121轉3進製 ,為11111,所有陣列大小定為5
int s[5]=;//砝碼重
while(n)
else
}for(int i=0;i<5;++i)
{ if(arr[i]!=0)
cout小白蟲繼續修煉中,希望大家以後多多關照
藍橋杯訓練 天平稱重
用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。如果只有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 使用...