/*
题意:一个整数n,计算操作次数,把序列(1~n)每次减去一个(1~n)
的正整数最终使整个序列都归为0
计算这个最小的操作次数
方法:多在本子上画画,递归公式:f(n)=f(n/2)+1;
*///AC
1 #include<stdio.h> 2 #include<string.h> 3 //1 ≤ N ≤ 1,000,000,000 int 足够 4 int f(int n) 5 { 6 int c; 7 if(n==1)c=1; 8 else 9 { 10 11 c=f(n/2)+1; 12 } 13 return c; 14 } 15 int main() 16 { 17 int n,i,j,k; 18 while(scanf("%d",&n)!=EOF) 19 { 20 printf("%d\n",f(n)); 21 } 22 return 0; 23 }