摘要: 将[1, n]从中间分成[1, n/2] 和[n/2+1, n]两个部分,分别包含n/2和(n+1)/2个数,将第二部分的数分别减去n/2+1, 第二部分变为[0, (n-1)/2], 第一部分包括第二部分,可得递推公式为:f(n) = f(n/2) + 1; 代码如下: View Code 1 #include 2 3 int f(int n) 4 { 5 return n == 1 ? 1 : f(n/2)+1; 6 } 7 8 int main() 9 {10 int n;11 while(scanf("%d", &n) != EOF)12 ... 阅读全文
posted @ 2013-04-09 18:32 xiaobaibuhei 阅读(160) 评论(0) 推荐(0)