java吧 关注:1,235,340贴子:12,703,116
  • 10回复贴,共1

找到一个趣味性问题!!与大家分享

只看楼主收藏回复

看如下代码 :
if ( a == 0 )
b = 1 ;
else
b = 7 ;
那么问题来了,如何在不用分支,或者三目运算符,或者其他需要判断的语句的条件下,实现 b 的赋值呢 !


1楼2014-11-03 23:07回复
    异常


    IP属地:江苏来自Android客户端2楼2014-11-03 23:08
    收起回复
      int b=0


      IP属地:四川来自Android客户端3楼2014-11-03 23:11
      收起回复
        b=a>>1|a>>2|a>>3|a>>4|a>>5| a>>6|a>>7 &7 可判断8位以下的。
        如果答对了楼主粉我可好?
        1998年马化腾开QQ,让你注册,你不注。现在一个5位数的QQ几万。2003年马云说开淘宝店不要钱,让你开店,你不开。10年淘宝造就了无数个亿万富翁。2009年曹国伟开微博,让你开通,你不开。如今一个微博搞笑排行榜年净赚1500万 。现在我让你粉我,你可以不粉,但你自己要好好想想,你会再错过什么。
           --来自助手版贴吧客户端


        IP属地:湖北来自Android客户端4楼2014-11-03 23:28
        收起回复
          首先System.out.print("a="+a);
          然后看a是不是0
          最后int b=x;


          IP属地:福建来自Android客户端5楼2014-11-04 00:50
          回复
            (Math.floor(Math.pow(3,(a-1)))& 1)* 6 + 1,,,,,,a可能是小数的话先向上取整,a可能是负数的话先取绝对值


            IP属地:浙江来自Android客户端6楼2014-11-04 08:28
            回复
              C++码
              #include <iostream>
              using namespace std;
              int main()
              {
              int a;
              cin >> a;
              int b = 1;
              for(int i = 0; i < 3; ++i)
              {
              for(int j = 0; j < sizeof(int) * 8; ++j)
              {
              b |= ((a >> j) & 1) << i;
              }
              }
              cout << b << endl;
              return 0;
              }


              IP属地:四川7楼2014-11-04 08:57
              回复


                IP属地:广东8楼2014-11-04 12:23
                回复