手推一下规律就出来了吧
数字 个数 分别是多少
1 1 1
2 2 1 1
3 2 1 2
4 3 1 2 1
5 3 1 2 2
6 3 1 2 3
7 3 1 2 4
8 4 1 2 4 1
/**************************************************************
Problem: 1192
User: syh0313
Language: C++
Result: Accepted
Time:8 ms
Memory:1288 kb
****************************************************************/
#include <iostream>
#include <cstdio>
#include <cstdlib>
using
namespace
std;
long
long
n,p=1,sum;
int
main()
{
scanf
(
"%lld"
,&n);
for
(
int
i=1;;i++)
{sum+=p; p<<=1;
if
(sum>=n) {
printf
(
"%d\n"
,i);
break
;}}
return
0;
}