今天看《程序员修炼之道》(The Pragmatic Programmer)
看到很有趣的一节
下面“不可能”的事情中,哪些是有可能发生的。
1.一个月(公历中)少于28天
2.在C++里:a = 2;b = 3;if (a+b != 5) exit(1);
3.内角和不等于180度的三角形
4.没有60秒的一分钟
5.在JAVA中:(a+1) <= a
你想到了几种?
实际上每一种都是可能的哦~
看到很有趣的一节
下面“不可能”的事情中,哪些是有可能发生的。
1.一个月(公历中)少于28天
2.在C++里:a = 2;b = 3;if (a+b != 5) exit(1);
3.内角和不等于180度的三角形
4.没有60秒的一分钟
5.在JAVA中:(a+1) <= a
你想到了几种?
实际上每一种都是可能的哦~
1.少于28天的月
1752年9月 (19天)
September 1752
Su Mo Tu We Th Fr Sa
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
2.在C++里:
a = 2;
b = 3;
if (a+b != 5)
exit(1);
可能性1. a与b是某种重载了运算符的自定义类型
可能性2. a和b可能是同一变量的别名,第二次赋值覆盖了第一次的赋值
3.内角和不等于180度的三角形
非欧几何中
4.没有60秒的一分钟
闰分
5.在JAVA中:
(a+1) <= a
溢出可能使 a+1的结果为负
果然自己的思路还是太窄了
一切皆有可能啊!