- UID
- 10253
- 帖子
- 3334
- 精华
- 0
- 贡献
- 20
- 推广
- 0
- 有效BUG
- 0
- 来自
- 江门·中国
- 注册时间
- 2006-4-28
|
long fn(long n)
{
if(n<=0)
{
printf("error: n must > 0);
exit(1);
}
if(0==n%2)
return (n/2)*(-1);
else
return (n/2)*(-1)+n;
}
对"面试官"的算法有点疑问
n = 7 ; n%2=1
那么代入得 结果 (7/2)*(-1)+ 7 = 3.5 ?
最后一行 应该是 return ((n-1)/2)*(-1)+n; 吧 ? |
|