错在哪儿?"/>
【基础练习】n1==0错在哪儿?
这个问题源于一道分解质因数的水题(codevs 1313)
我的源码中有一段是
int n,p;scanf("%d",&n);if (n&1==0){printf("%d",n/2);return 0;}
可是问题出现了 如果我们输入一个偶数 这个程序块根本不跑
这是一项很奇怪的事 因为快速幂非递归中 我们常用到if(n&1==1)这样的句子
LGA大婶,ZLC神犇纷纷表示无法解答 但鄙人在知乎上找到了答案
因为这时候我才恍然大悟:位运算优先级非常低 左右移甚至比加减运算优先级还低
没想到的原因 一个是P党时代不用考虑这个 直接and shr这样的 在一个是平时也不大注意 果然还是加括号吧 也能提高程序可读性
——明明如月,何时可掇?忧从中来,不可断绝。
更多推荐
【基础练习】n1==0错在哪儿?
发布评论