描述
给定正整数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;
}