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

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

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

附上代码QWQ~


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#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