【C语言四行代码计算出圆周率小数点后800位,你能看懂它吗?】

算法相关 徐 自远 569℃ 0评论

【C语言四行代码计算出圆周率小数点后800位,你能看懂它吗?】 http://m.toutiao.com/group/6338540653363380482/?iid=5666273274&app=news_article&tt_from=android_share&utm_medium=toutiao_android&utm_campaign=client_share

圆周率的计算算法一直以来都被用于测试计算机的性能还有编程技能。这是某个不知名的大神写的一个程序,仅仅几行代码瞬间计算出圆周率小数点后800位。(头条代码不能缩进,所以还是用 —- 代替缩进)

#include <stdio.h>

#include <windows.h>

int a=10000, b, c=2800, d, e, f[2801], g;

int main() {

—-for(;b-c;)

——–f[b++]=a/5;

—-for(;d=0,g=c*2;c-=14,printf(“%.4d”,e+d/a),e=d%a,Sleep(80)) 

——–for(b=c;d+=f[b]*a,f[b]=d%–g,d/=g–,–b;d*=b);

—-return 0;

}

小猿是看不懂这个代码,网上有对其的分析:

1.使用的是这个公式

pi = 2 + 1/3 * (2 + 2/5 * (2 + 3/7 * (2 + … (2 + k/2k+1 * (2 + … ))…)))

(允许我懵逼3秒钟)

2.要想精确计算出PI,就需要将上面那个公式迭代无数次,并且要保证每个分数都是精确的,C语言是不能实现了,毕竟double型有精度限制。这里只能迭代有限的次数,保证让每个分数都精确。这里就只迭代了2800次(c=2800)。

3.输出的时候也是每4位一起输出,共输出了200段。

4.其他的小猿就看不懂了。大神知道的一起来讨论讨论~



转载请注明:徐自远的乱七八糟小站 » 【C语言四行代码计算出圆周率小数点后800位,你能看懂它吗?】

喜欢 (1)

您必须 登录 才能发表评论!

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号