2 的幂
my code:
bool isPowerOfTwo(int n){
int target = 1,i;
if (n <= 0){
return false;
}
for(i = 1;i != 1073741824;i *= 2){
if(i == n ){
return true;
}
}return false;
}
bool isPowerOfTwo(int n){
int target = 1,i;
if (n <= 0){
return false;
}
for(i = 1;i != 1073741824;i *= 2){
if(i == n ){
return true;
}
}return n == 1073741824;
}
领悟:当数据溢出,return false就不再准确,因为取不到边界值,会遗漏n的可能,这时利用判断的表达,n == 1073741824,为真,结果就是true,否则就是false,就巧妙地解决了边界值取不到的情况。
浙公网安备 33010602011771号