題目: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 位址。如果掩...