Manthan, Codefest 18 A Packets(思维题)
链接:http://codeforces.com/problemset/problem/1037/A
问输入一个数n,最少可以用几个数来表示从1-n的所有数
1只能表示1,1,2可以组成1-2的数,而1+2=3,即1,2,4可以组成1-7的数,1,2,4,8又可以组成1-15的数,进而可以推出数组1,2,4,8,16,32,64...继而可以发现其规律
代码:
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false);cin.tie(0); int n, i, s = 0; cin>>n; for(int i=0;;i++) { s+=(1<<i); if(s>=n) { cout<<i+1; break; } } }