藍橋杯訓練 天平稱重

2021-08-17 01:17:26 字數 750 閱讀 4211

用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。

如果只有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 使用...