要求不能用循环。

解决方案 »

  1.   

    bluebohe(薄荷)高!
    这样更好:
    if(a && !(0x80000000%a))
      

  2.   


    if (a>>1)
       是2的次方
    else
       不是2的次方
      

  3.   

    if((x & (x-1)))
    很巧妙的方法!
      

  4.   

    只有 if(a && !(0x80000000%a)) 是对的
      

  5.   

    if(a && !(0x80000000%a))
      

  6.   

    支持wwrb(飞翔的骆驼)!高呀!
    思路对,细节可以再雕琢,比方用--代替双目减法运算符,然后按位与.
      

  7.   

    joysunstar(鹤鸣)说得对,确实需要非零判断.
      

  8.   

    好像
    if((x & (x-1)))没有判断0的情况应该这样
    if(x && (x & (x-1)))
      

  9.   

    if((x & (x-1)))应该改成这样:
    if(x && !(x & (x-1)))
      

  10.   

    to :Mr_Ldh(天上不会掉奶酪) 
    很不错
      

  11.   

    if (x && (x & (x-1)) == 0)
    {
    };这是很老的提了太老了