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,就巧妙地解决了边界值取不到的情况。
 
posted @ 2023-10-26 00:49  2B青年~  阅读(11)  评论(0)    收藏  举报