洛谷题解 P3152 【正整数序列】


其实为什么要递归,直接整除除就好了

规律仔细观察一下,答案其实是 a/2 ans次后等于0

附上代码QWQ~~~


#include<iostream>
using namespace std;
int main()
{
    long long ans=0,a,b,c;
    cin>>a;
    if(a==1)/*特判*/
    {
        cout<<-1<<endl;
        return 0;
    }
    while(a/2!=0)
    {
        ans++;
        a=a/2;
    }
    cout<<ans<<endl;/*输出*/
}

题目详见:https://www.luogu.org/problem/show?pid=3152