查看: 1407|回復: 0
打印 上一主題 下一主題

[ZJ] a316 - E 守塔新武器

[複製鏈接]
  • TA的每日心情
    慵懶
    2015-4-10 14:18
  • 簽到天數: 78 天

    [LV.6]常住居民II

    176

    主題

    612

    帖子

    3959

    積分

    管理員

    Rank: 9Rank: 9Rank: 9

    積分
    3959

    台南一中資訊社新手達陣程式設計達人 - 2014

    跳轉到指定樓層
    樓主
    發表於 2014-4-27 11:42:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

    趕快加入我們來參與討論吧!

    您需要 登錄 才可以下載或查看,沒有帳號?加入我們

    x
    原文:http://zerojudge.tw/ShowProblem?problemid=a316
    AC   :http://zerojudge.tw/Submissions?problemid=a316&account=lfs92002
    ACCODE:http://ideone.com/wj3ZNY
    懷舊系列,國中時寫的code。位元運算,當初是@masson0223 在黑板上爆出結論的。我再補完計畫有發表解法,不過我覺得最後一個留言做得很漂亮,大家可以觀摩下。
    補完 : http://www3.tcgs.tc.edu.tw/npsc/index.php?topic=301.0

    #include<iostream>
  • using namespace std;
  • long long int pow2[35]={1,2};
  • short T,p;
  • long int H,s;
  • int main()
  • {
  •         for(int x=1;x<35;x++)
  •                 pow2[x]=pow2[x-1]*2;
  •         cin>>T;
  •         while(T--)
  •         {        
  •                 cin>>H;
  •                 p=s=0;
  •                 while(H!=0)
  •                 {
  •                         H-=pow2[p];
  •                         s++;
  •                         if(H%pow2[p+1]!=0)
  •                         {
  •                                 H-=pow2[p];
  •                                 s++;
  •                         }
  •                         p++;
  •                 }
  •                 cout<<s<<endl;
  •         }
  •         return 0;
  • }
  • 回復

    使用道具 檢舉

    您需要登錄後才可以回帖 登入 | 加入我們

    本版積分規則

    快速回覆 返回頂部 返回列表