題目來源: http://poj.org/problem?id=2453
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 6224 | Accepted: 3655 |
Description
Given a positive integer I, you task is to find out an integer J, which is the minimum integer greater than I, and the number of '1's in whose binary form is the same as that in the binary form of I.
For example, if "78" is given, we can write out its binary form, "1001110". This binary form has 4 '1's. The minimum integer, which is greater than "1001110" and also contains 4 '1's, is "1010011", i.e. "83", so you should output "83".
Input
A line containing a number "0" terminates input, and this line need not be processed.
Output
Sample Input
1 2 3 4 78 0
Sample Output
2 4 5 8 83
你想用模擬嗎?我笑了。
你想用搜索嗎?我笑了。
你想用遺傳算法加深嗎?我笑了。
你還想構建log2(n)的圖來求嗎?我笑了。
讓你們看看”水“這個字的奧義吧(特別是某位小牛:-D):
大聖代碼:
PAS如下:
我的比較短而且有效......