返回列表 发帖
  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; 吧 ?
天下无不散之筵席.

世界之窗浏览器开发计划

TOP

原帖由 needed 于 2007-1-18 23:22 发表


对"面试官"的算法有点疑问

n = 7  ; n%2=1
  那么代入得 结果 (7/2)*(-1)+ 7 = 3.5  ?

最后一行 应该是    return ((n-1)/2)*(-1)+n;  吧 ?



这个应该是取整的吧

TOP

返回列表