描述
给定正整数n,你的任务是用最少的操作数把序列1,2,3,...,n-1,n都变成0.每次操作可从序列中选择一个或多个整数,同时减去一个相同的正整数.比如1,2,3可以把2,3同时减去2,变成1,0,1.
输入
多组测试数据,每组仅一行,为正整数n.(1<=n<=10^9)
输出
对于每组数据输出最少的操作次数
输入样例 1
1
2
3
输出样例 1
1
2
2
这表面上是计算需要运算多少次其实暗地里并不是这样的,仔细观察就会发现,其实他是问可以除多少次2才为0。即把n可以除2次数输出即可。
#include <iostream>
using namespace std;
int main()
{
int n,s;
while(cin>>n)
{
s=0;
while(n>0)
{
n/=2;
s++;
}
cout<<s<<endl;
}
return 0;
}