您的位置:首页 > 其它

UVa 11384 - Help is needed for Dexter

2013-04-09 18:32 357 查看
  将[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

#include <cstdio>

int f(int n)
{
return n == 1 ? 1 : f(n/2)+1;
}

int main()
{
int n;
while(scanf("%d", &n) != EOF)
printf("%d\n", f(n));
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: