本来抱着wa一发的心态写写,没想到过了。
算是一种二分吧。
也就是说,减数取太大和太小都不好,怎样是最好的呢?当然是,每次减去一个数之后新形成的序列和前面的序一样是最好的
这样的话,本来想写个二分,但是直接写了下面的代码:开心
#include<iostream> using namespace std; int n, ans, l, r, mid; int main(){ while(cin>>n){ ans=0; while(n){ans++, n/=2;} cout<<ans<<endl; } }
为什么我敢如此写,因为时间复杂度是O(logn)的