序列太简单了,每次对于后面一半进行操作,使之变成前一半就行了。
i个数需要操作的次数
f(i)=f(i/2)+1
代码如下:
#include<cstdio>
using namespace std;
int f(int n){
return n==1?1:f(n/2)+1;
}
int main(){
int n;
while(scanf("%d",&n)==1)
printf("%d\n",f(n));
return 0;
}
原文地址:https://www.cnblogs.com/lingyuanchuang/p/9595213.html
时间: 2024-10-08 21:27:21