检查一个数字是奇数,n%2 还是 n&1
Checking if a number is odd with n%2 or n&1
我正在解https://www.codechef.com/COOK74/problems/TALAZY
首次提交(错误答案):https://www.codechef.com/viewsolution/11557512
第二次投稿(已接受):https://www.codechef.com/viewsolution/11560985
变化正在改变
if(n % 2){…
如果(n,1){…
有区别吗?
编辑:在有人指出将'long'改为'long long'之后,我编辑了这个问题
在你的错误答案n中,m和b被声明为"长",而在另一个错误答案中,它被声明为"长",而它们的极限是10^8。long的范围是平台相关的更多参考,你可以查看"long和long之间的区别是什么"。
不管网上的评判者怎么说,模数法要好得多。尽管在c++ 11之前,任何余数的符号都是实现定义的,但当测试根本没有余数时,这并不相关。此外,从c++ 11开始,如果有的话,余数的符号必须与输入n
的符号匹配。
对于负n
,更花哨的n & 1
是实现定义的:这取决于您的平台是使用1的补码,2的补码还是有符号整数类型的有符号幅度。
你的解决方案中的问题不在于你试图找出一个数字是奇数还是偶数的方法。
溢出的问题。
在我们的第二个解决方案中,您将计数器n,b,m和x的值类型从long更改为long long。这是有区别的。事实上,你可以很容易地验证,也可以用你在第一次尝试中使用的方法改变第二个解决方案中的奇数/偶数代码。它将返回相同的结果
相关文章:
- enum是C++中的宏变量还是整数变量
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- 在命名空间中定义函数还是限定函数
- 架构决策:返回std::future还是提供回调
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 异常属于C++中的线程还是进程
- 在决定是通过参考还是通过价值时,尺寸真的是一个问题吗
- 如何在C++中确定文本文件中的元素是字符还是数字
- 返回值优化:显式移动还是隐式
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- 为什么需要知道一个类是平凡的还是有平凡的构造函数
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- 'string.assign(string.data(), 5)' 是明确定义的还是 UB?
- 在哪里放置我的函数?进入我的母语 Gui 还是进入我的演示者?
- 在这种情况下,我真的复制了字节还是复制了字符?
- node-gyp 的先有鸡还是先有蛋的问题:指向依赖项中的头文件
- CIN是逻辑1还是0?
- i++还是++i更适合这个程序?
- 我应该将外部标头放在 .h 文件还是.cpp文件中?
- 这个失败的测试是将零添加到空指针未定义的行为、编译器错误还是其他什么?