首页 > 其他分享 >一行代码——计算PI后15,000位

一行代码——计算PI后15,000位

时间:2023-11-28 18:47:11浏览次数:33  
标签:15 int 000 NUM long 10000 PI define

先上代码

a[52514],b,c=52514,d,e,f=1e4,g,h;main(){for(;b=c-=14;h=printf("%04d",e+d/f))for(e=d%=f;g=--b*2;d/=g)d=d*b+f*(h?a[b]:f/5),a[b]=d%--g;}

运行的时候可能会有警告,像这样。
image
但是不用管,直接运行就行了

注意,一定要用 \(C\) 语言,不能用\(C++\)语言

然后是优化版

#include <stdio.h>
#define PI_NUM 100000 //要算到的位数
#define NUM (PI_NUM * 14 / 4)
#define int long long int
long long a[NUM + 1];
long long b = NUM;
long long c = NUM;
long long d = 0, e = 0;

int main(void)
{
	for (long long i = 0; i < NUM + 1; i++)
	{
		a[i] = 2000;
	}
	while (c != 0)
	{
		b = c;
		e = d % 10000;
		d = e;
		while (b != 0)
		{
			d = d * b +  a[b] * 10000;
			a[b] = d % (2 * b - 1);
			d /= (2 * b - 1);
			b--;
		}
		c -= 14;
		printf("%04d", e + d / 10000);
	}
	return 0;
}

大概可以算到10多万位小数。

标签:15,int,000,NUM,long,10000,PI,define
From: https://www.cnblogs.com/BadBadBad/p/PI.html

相关文章

  • Apipost也出IDEA插件了?Apipost-Helper!
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、接......
  • Apipost也出IDEA插件了?Apipost-Helper!
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、......
  • 关于 acpi 与 atx 电源
         关于acpi         也就是说,acpi干的是bios的活。电源管理被内核管理起来了,这也就是说,要使用acpi,内核必须起来才可以。      ......
  • Vite4+Typescript+Vue3+Pinia 从零搭建(4) - 代码规范
    项目代码同步至码云weiz-vue3-template要求代码规范,主要是为了提高多人协同和代码维护效率,结合到此项目,具体工作就是为项目配置eslint和prettier。editorconfig安装EditorConfigforVSCode插件,根目录下新建.editorconfig文件,增加以下配置[*.{js,jsx,ts,tsx,vue}]......
  • Vue中process.env关键字,process.env.VUE_APP_BASE_API
    Vue中process.env关键字,process.env.VUE_APP_BASE_API:https://blog.csdn.net/coinisi_li/article/details/128547778 vue分环境配置变量及打包:https://blog.csdn.net/weixin_44794123/article/details/121682978?spm=1001.2101.3001.6650.8&utm_medium=distribute.pc_relevant.......
  • spine共享骨骼
    项目中遇到使用多个相同spine的问题:我们需要获取骨骼位置的时候,要拿下面这个类的信息 spine工具给的更新方案是:每个spine在Update中每帧更新,根据当前spine更新骨骼信息。这样比较费,比如我们项目场景中有五个角色,每个角色有五个编制,那光友方单位就是25个spine,很难蚌。优化方......
  • 查询表记录API
    <1>all():查询所有结果<2>filter(**kwargs):它包含了与所给筛选条件相匹配的对象<3>get(**kwargs):返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。<4>exclude(**kwargs):它包含了与所给筛......
  • pip工具安装
    pip工具(1)安装第三方模块pipinstall模块名==#查看我当前模块都有哪些版本pipinstall模块名==版本号#安装指定版本的模块(2)卸载模块pipuninstall模块名临时换源pipinstall模块名-i镜像原地址镜像源清华大学: https://pypi.tuna.tsinghua.edu......
  • SPI
    概述SPI(ServiceProviderInterface)JDK内置的一种服务提供发现机制;用来启用框架扩展和替换组件; 当服务的提供者提供了一种接口的实现之后,需要在classpath下的META-INF/services/目录里创建一个以服务接口命名的文件,这个文件里的内容就是这个接口的具体的实现类;当其他的程......
  • API 接口主流协议有哪些?及WebService和Restful之间的区别和联系?
    API接口主流协议有哪些?如何创建HTTP/HTTPS、WebSocket/WebSockets、TCP/UDP、gRPC、SOAP、Dubbo/HSF等不同协议?RESTFUL:简单来说就是对HTTP请求的方式和路径的一种约束规则,一种思想。只要是符合这种思想的HTTP接口都可以叫做RESTFUL接口即同一个路径,相同的参数,请求方式的不同......