在别人的微博看到了一个粗略计算圆周率的代码,很好奇代码是怎么办到的,想了下,想通了
代码如下:
怎么计算的呢?利用'||'的短路性质,也就是如果左边部分为True,就不执行右边部分了.
比如'_-_-_',我们把宏定义的的'_',带进去就是" F-->00 || F-OO--;-F-->00 || F-OO--;-F-->00 || F-OO--;"显然对于第一个分号前的部分,'||'左边为False,所以F和OO都要减1,但后面部分,F前面有个负号,此时'||'的左边为真了,就不执行右边了,所以只有F减1,OO不变.
所以那个图就是对于每个'_'F都减1,对于每一行OO都减1,abs(F)就大约是圆面积,abs(OO)就大约是直径.
转念一想这样的代码有什么具体的用处呢????