竞赛
考级
操作如下
非常简单,我们只需要判断一下n是不是双数就可以了(具体看代码)
题目看完后,很多人的第一想法是:用循环,循环代码如下 但是!!!,n的取值范围是:1<=n<=10^15,如果按上面的代码运行,将会超时。所以,O(n)不可取,只能使用O(1)。 可以观察规律,得出公式: 当n为偶数时: f(n)=n/2; 当n为奇数时: f(n)=-1*[(n+1)/2] 这样一来,使用分支判断n的奇偶性再输出,就能做到O(1) 并符合n的取值范围 最终代码: 嘘...别出声,制作不易,点点赞吧。
提交答案之后,这里将显示提交结果~