想問一下,這題的記憶體限制情況下要怎麼處理數字的問題。
也沒辦法偷懶使用 map ,不知道怎麼下手?
不會和 e080 一樣是要控制檔案讀取的方式(?)
可以將給定的數字們轉成二進位,然後求每個冪次各自的和。
例:1 2 1 3 4 3 4 → 1 10 1 11 100 11 100 →
1
10
1
11
100
11
+) 100
_____
234
此意為 22 有 2 個、21 有 3 個、20 有 4 個。而如果每一種紙包雞的數量皆一樣(在此例為 2 個)的話,所有的冪次之和應為一種的數量之倍數(在此例 22 、21 、20 的值皆應為 2 的倍數)
但因為有一種紙包雞有缺,因此會導致在此種紙包雞的二進位表示法中那些為 1 的冪次之總和不為應有數量的倍數。
而在此例只有 21 不為 2 的倍數,因此有缺的紙包雞之編號為 21 = 2 。
以上,大致上就是這樣子的想法。希望有幫助到您。