【yukicoder】No.47 ポケットを叩くとビスケットが2倍
yukicoderさんの問題です.
http://yukicoder.me/problems/no/47
難しさ(初心者目線)
・考え方*
・実装
・面白さ**
ヒント
コード
#include <algorithm> #include <cstdio> #include <iostream> #include <map> #include <cmath> #include <queue> #include <set> #include <sstream> #include <stack> #include <string> #include <vector> #include <stdlib.h> #include <stdio.h> #include <bitset> using namespace std; #define ll long long #define PI acos(-1.0) #define FOR(I,A,B) for(int I = (A); I < (B); ++I) //最初は1枚しかないのでN-2^k>=0を満たす最大のkを求める //=0がなり立てばkが答え //>ならば足りない枚数をポケットに入れて叩けばOK //持っている枚数>足りない枚数を満たしている //答えはk+1 int main(){ ll int N; cin >> N; int k = 0; while(N-pow(2, k)>0) k++; cout << k << endl; }