題目:讓你求從x到y中(1<=x<=y<=10^18),二進位制一的個數最多的數是哪個,如果有多個相同的答案,輸出最小的。
類似題目及題解:
分析:先把x和y轉換成二進位制位:
(假設x,y最高位不是同一位):則答案可以取11111
(如果lr最高位相同):則最高位的數一定取,然後比較減去最高位後,剩下的數
特判:y的二進位製全是1時,答案為y。
注意:&運算優先順序低於==,需要加括號
#includeusingnamespace
std;
int cal2(long
long n)//
計算二進位制有幾個1
return
cnt;
}long
long cal(long
long x,long
long
y)
else
//最高位不相等
return
ans;}}
}return0;
}int
main()
return0;
}
4 來自 Google 的奇技
google 用了很多自己實現的技巧 工具使 c 更加健壯,我們使用 c 的方式可能和你在其它地方見到的有所不同.tip如果確實需要使用智慧型指標的話,scoped ptr 完全可以勝任.你應該只在非常特定的情況下使用 std tr1 shared ptr 例如 stl 容器中的物件.任何情況下都不...
IPAD2 來自矽谷的最新獨家報道
今天去客戶辦公室,路過矽谷最著名的那家蘋果店,發現門口排起長隊。走過去,發現今天下午5點ipad2開始發售。這隊伍從蘋果店門口一直排到梅西,lv門口 我每天都經過這裡,第一次看到這種情形。隊伍裡面80 是中國人,深深證明了中國人民站起來了!中國人有錢了!很多博友會問,怎麼這裡頭這麼多中國老太太阿?呵...
IPAD2 來自矽谷的最新獨家報道
今天去客戶辦公室,路過矽谷最著名的那家蘋果店,發現門口排起長隊。走過去,發現今天下午5點ipad2開始發售。這隊伍從蘋果店門口一直排到梅西,lv門口 我每天都經過這裡,第一次看到這種情形。隊伍裡面80 是中國人,深深證明了中國人民站起來了!中國人有錢了!很多博友會問,怎麼這裡頭這麼多中國老太太阿?呵...