【发布时间】:2017-01-26 22:44:08
【问题描述】:
我正在解决https://www.codechef.com/COOK74/problems/TALAZY
第一次提交(错误答案):https://www.codechef.com/viewsolution/11557512
第二次提交(接受):https://www.codechef.com/viewsolution/11560985
变化正在改变
如果(n % 2){ ...
到
如果(n & 1){ ...
有区别吗?
编辑:在人们指出“long”到“long long”的变化后,我编辑了问题。
【问题讨论】:
-
请不要在此处询问有关在线代码判断引擎的问题。任何人都不太可能从他们的测试用例中告诉你你失败的地方,因为这些通常不会被披露。即使您测试的是在本地环境中运行,您也可能错过了测试在线挑战中应用的一些边缘案例。要有创意并尝试找到它们。此外,从长远来看,这些问题可能没有任何价值,除了在在线比赛中作弊,什么都学不到。
-
两种情况下的代码都是一样的。所以我认为没有任何遗漏任何测试用例的问题。我的重点是为什么操作员的变化有效?这两个语句的工作方式相同。
-
可以去掉测试写
x = (n+1) >> 1; -
不错的一个。谢谢!
-
这两个代码之间有几个变化。
标签: c++ if-statement operators bitwise-operators