Harry Potter想立刻趕到學校去,假設他和學校處於一條直線上,他一開始處於0點,學校位於X點。在一個單位時間內他可以往前走1格,或者使用魔法把自己變到目前坐標2倍的地方。請問他到學校最少需要多少時間?
第一行是一個整數K,表示樣例的個數。 以後每行是一個整數,表示X(0≤X≤10^18)。
每行輸出一個整數,表示Harry Potter趕到學校需要的時間。
3 1 10 100
1 5 9
最後一次模擬訓練,下一周就比賽了,做了一下湘潭大學的聯合訓練題,好受打擊啊,只做出來一道題,還有幾道題都沒什麼思路,這樣的狀態怎麼去比賽啊!!!只做出了這一道水題,後面的一道題,wa了好多次,還超時了好幾次,好多模板題,看不出是什麼模板啊,還是有好多內容不熟悉啊!!發現了好多問題,說明自己的實力不行!!!還需要加強訓練!!
下面是ac的代碼:
#include判斷是否是奇數或者是偶數可以用 &1,可能比這樣省時間! 位運算!#include using namespace std; int main() { int t; long long x; scanf("%d",&t); while(t--) { long long count=0; scanf("%I64d",&x); while(x) { if(x%2==0) { x/=2; count++; } else { x-=1; count++; } } printf("%I64d\n",count); } return 0; }