多语言展示
当前在线:1624今日阅读:60今日分享:41

雾里看花:[1]一、外星人程序

#include 'stdio.h'long a=10000,b,c=2800,d,e,f[2801],g;main(){ for(;b-c;) f[b++]=a/5; for(;d=0,g=c*2;c-14,printf('%.4d',e+d/a),e=d%a)  { for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);} }你能看懂这4行代码在干什么吗?我来告诉你。
方法/步骤
1

这是一个计算圆周率的小程序。

2

公式:            ∞  PI/2 = ∑ (n! / (2n+1)!!)  n= 0  这个公式收敛很快,计算2800项就可以精确到小数点后800位。

3

代码解释:    for(;b-c;)的意思时说当b=2800的时候退出循环。    C语言全局变量是静态存储,由系统缺省初始化为0。而局部变量声明部分,就是AUTO存储,都必须进行初始化。另外两个for则是对公式的实现。

4

故弄玄虚。不过,天才就是有故弄玄虚的资本。

5

翻译之后的代码:#include 'stdio.h'long b,c,d,e,f[2801];void main(){ for (int i = 0; i < 2800; i++)  f[i] = 2000; f[2800] = 0; for (c = 2800; c > 0; c -= 14)  { d = 0; for (b = c; b > 0; b--)  { d += f[b] * 10000; f[b] = d % (2*b-1); d /= (2*b-1); if (b > 1) d *= (b-1); } printf('%.4d', e + d / 10000); e = d % 10000; }}

推荐信息