5個砝碼 表示1 121

2021-07-16 17:06:45 字數 931 閱讀 1876

題目:5個砝碼  用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。  如果只有5個砝碼,重量分別是1,3,9,27,81。則它們可以組合稱出1到121之間任意整數重量(砝碼允許放在左右兩個盤中)。  本題目要求程式設計實現:對使用者給定的重量,給出砝碼組合方案。  

例如:  

使用者輸入:5  

程式輸出:9-3-1  

使用者輸入:19  

程式輸出:27-9+1    

要求程式輸出的組合總是大數在前小數在後。可以假設使用者的輸入的數字符合範圍1~121。

解析:看5個數字分別是3^0 3^1 3^2 3^3 3^4,和三進製一樣故想到用 3進製加減問題

例如  80   按3進製轉化    進製    1    3      9    27   81

對應數     2    2      2     2     0    即  54+18+9+1

但是題目要求只能由 1   3    9   27   81  加減組成

若當前位為2 則向前進一位  並把當前為轉化為-1   ;若當前位為3,直接進製,當前位清0

進製    1    3      9    27   81

對應數     -1   0     0    0    1    即  81-1

**如下

#includeusing namespace std;

int main()

; int a[5] = ;//表示當前位數

int n;

while (cin >> n)

for (int j = 0; j < i; j++)

}i--;

for (int j=i; j >= 0; j--)

}cout << endl;

} return 0;

}

如何計算乙個有符號數的補碼表示?

按照 譚浩強.c程式設計 第三版 北京 清華大學出版社,2005 的第40頁至第41頁所述,求乙個負數的補碼的方法如下 例 求 10的補碼的方法如下 1 取 10的絕對值10 2 10的絕對值的二進位制形式為1010 3 對1010取反得1111 1111 1111 0101 這裡假定乙個整數佔16...

第十屆 藍橋杯樣題 5個砝碼

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

如何使用IP位址和子網掩碼表示乙個網段的IP

在架伺服器時候,有的軟體不支援x.x.x.x x.x.x.x的ip網段表達方式,而是使用了子網掩 碼這種專業一些的表達方式。如wme9等。下面我們就如何使用這種表達方式進行一下 下面有乙個簡單的描述,看完你就可以入門了,出自wme幫助 使用位址範圍時,系統將逐位比較 ip 掩碼和 ip 位址。如果掩...