數學 巧用進製

2021-09-18 05:40:25 字數 781 閱讀 3785

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

如果有無限個砝碼,重量分別是1,3,9,27,81,……等3的指數冪,

神奇之處在於用它們可以稱出任意整數重量(砝碼允許放在左右兩個盤中)。

本題目要求程式設計實現:對使用者給定的重量,給出砝碼組合方案。

使用者輸入:

程式輸出:

9-3-1

使用者輸入:

程式輸出:

27-9+1

要求程式輸出的組合總是大數在前小數在後。

可以假設使用者的輸入的數字符合範圍1~121。

1, 3, 9, 27, 81,……

30,31,32,33,34,……

聯想到用3進製解決問題。

假設是二進位制:

1,2,4,8,……

假設要稱重量為10的物品,10轉換為二進位制是1010,代表取2和8兩個砝碼就能稱出10,11轉換為二進位制是1011,代表取1、2和8三個砝碼就能稱出11,……

如果把5轉換為3進製為12,1代表要取乙個重量為3的砝碼,2代表要取兩個重量為1的砝碼,但是題目中並沒有說可以用多個砝碼。

如果把5轉換為變種3進製可以表示為(2,-1)3=(1,-1,-1)3,這樣就能夠表示為題目中給出的9-3-1。

二進位制代表了兩種狀態,取或不取,但是三進製代表了三種狀態,放在左盤、不取、放在右盤。

對於要稱重的數,先轉換為3進製 ,然後翻轉(放置越界),之後轉成字元陣列,掃瞄;如果遇到2就將其自己變成-1,下一位+1;如果遇到22的情況就將2變成-1,下一位變成0,後面一位+1;最後,恢復成10進製。

數學 巧用進製

用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。如果有無限個砝碼,重量分別是1,3,9,27,81,等3的指數冪,神奇之處在於用它們可以稱出任意整數重量 砝碼允許放在左右兩個盤中 本題目要求程式設計實現 對使用者給定的重量,給出砝碼組合方案。使用者輸入 程式輸出 9 3 1 使用者輸入...

巧用進製解「天秤」問題 演算法筆記

每個砝碼只能用一次!思想 利用進製轉換寫,先把所給的數轉換成3進製,再轉換成字串,逆轉 這樣從左到右就是位數從低到高,數值是1就不管,是2就往上進一位,並將此位記為 1,1表示待會放在 左邊砝碼 是3就往上進一位,並將此位記為0 將數 n 轉換成 3 進製字串 且把三進製數翻轉過來了。return ...

巧用進製解決天平稱問題《演算法很美》

用天平稱重時,我們希望佣金可能少的砝碼組合稱出盡可能多的重量。如果有無限個砝碼,但它們的重量分別是1,3,9,27,81,等3的指數冪神奇之處在於用它們的組合可以稱出任意整數重量 砝碼允許放在左右兩個盤中 本題目要求程式設計實現 對使用者給定的重量,給出砝碼組合方案,重量 1000000。例如 使用...