记得小时候常和同学们玩一个游戏,给出任意四个数,将其任意使用运算符号 使其最后的结果为24点。
如果题目 是 :四个0 算 24 点 。 你能给出什么答案呢?
于是有了:
① '0'/(('0'+'0')/'0')
② '0'>>'0'/'0'+0
③ -~-~-~-~-~-~0-~-~-~-~-~-~0-~-~-~-~-~-~0-~-~-~-~-~-~0
尤其看到第三个,这简直是碉堡了哈哈
原因是 字符'0' 对应的 ascii 码为 48 ,它可以直接拿来运算了
而第三个关键在于~ 是按位取反,~0 == -1, ~-~0==~(-~0)==~(-1)==-2,以此类推……原 式==-(~-~-~-~-~-~0)-(~-~-~-~-~-~0)-(~-~-~-~-~-~0)-(~-~-~-~-~-~0)==-(-6)-(-6)-(-6)-(-6)==24 ,
各位可以从各种算术操作符逻辑操作符上入手得到更多的解释哦~用三角函数什么的真是弱爆了
实践是检验真理的唯一标准
public class Test {
public static void main(String[] args) {
int a = '0'/(('0'+'0')/'0');
int b = '0'>>'0'/'0'+0;
int c = -~-~-~-~-~-~0-~-~-~-~-~-~0-~-~-~-~-~-~0-~-~-~-~-~-~0;
System.out.println("a="+a+",b="+b+",c="+c);
System.out.println((int)'0');
}
}
结果:
a=24,b=24,c=24
48