高精度计算PI值

高精度计算PI值

所用公式:

#include

#include

typedef struct list{

int data;

struct list *next;

struct list *pre;

}list;

list* Initlist()

{

list* head;

head=(list*)malloc(sizeof(list));

head->next=head->pre=head;

return head;

}

list* Creatlist(list*head)

{

int i;

list *p;

p=head;

for(i=0;i<1000;i++)

{

list *q=(list*)malloc(sizeof(list));

q->data=0;

q->pre=p;

p->next=q;

q->next=head;//第一次循环时此时的head和p是一个东西,目的为把链表画成一个圈

head->pre=q;

p=p->next;

}

return head;

}

int main()

{

int n,i,a,b;

scanf("%d",&n);

list *number,*sum;

list *p,*q,*x;

number=Initlist();

sum=Initlist();

number=Creatlist(number);

sum=Creatlist(sum);

number->next->data=2;//第一位储存2,即2*R(1)=2

sum->next->data=2;//与上同理

a=0,b=0;//分别是用来暂时存储进位和余数

for(i=1;i<2000;i++)//循环两千次,确保精确度

{

p=number->pre;//做大数乘法时从链表的后方开始

while(p!=number)//大于10则把10位的数字给b,个位数字放入data域中。

{

a=p->data*i+b;

p->data=a%10;

b=a/10;

p=p->pre;

}

b=0;//清空b,为除法做准备

p=p->next;//大数除法从链表的前方开始

while(p!=number)//若计算出的数字为自然数,则直接放入data域;若等于0,或为小数,则要计算余数并给b。

{

a=p->data+b*10;

p->data=a/(2*i+1);

b=a%(2*i+1);

p=p->next;

}

b=0;//清零

p=number->pre;//大数加法均从末尾开始

q=sum->pre;

while(p!=number)//大于10进位,并储存个位数,进位数字赋给b。

{

a=p->data+q->data+b;

q->data=a%10;

b=a/10;

p=p->pre;

q=q->pre;

}

}

printf("3.");

x=sum->next->next;//从小数开始输出。

for(i=0;i

{

printf("%d",x->data);

x=x->next;

}

return 0;

}

当n=5时,PI=3.14159

当n=500时 ,

PI=3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912

高精度计算PI值相关教程

如何在SQL Server计算XX年第XX周是哪几天

如何在SQL Server计算XX年第XX周是哪几天 SQL Server有一个很强大的函数:DATEPART() 它可以计算2017-10-17是属于今年的 第几天:select datepart(dy,'2017-10-17') 第几周:select datepart(wk,'2017-10-17') 第几月:select datepart(mm,'2017-10-17') 第

地基中的附加应力计算 —— 平面问题

地基中的附加应力计算 —— 平面问题 平面问题成立的条件 荷载面为长条形,宽度有限,长度无限(一般当长度是宽度的5倍时,可以视为平面问题) 长度方向为均布荷载 平面问题之 线荷载—费拉曼解 其结果仅与R1,p 和 β 有关,表明长度垂直的任何平面上的应力

matlab中常用的矩阵计算

matlab中常用的矩阵计算 matlab常用函数链接 Matlab基本语法与指令链接 参考博客网址 x = A\b; 本博客参考来源超链接 附上一些有用的matlab学习的链接 MATLAB多图合一代码模板链接 Matlab基本语法与指令链接 matlab常用函数链接 MATLAB曲线拟合添加链接描述 M

js加减乘除计算器

js加减乘除计算器 1.首先我们需要规划好计算器的结构 计算器的结构可以用好几种方法写:表格、button、列表…这篇博文我是用表格写的 body里先构建4*6的表格并调整好宽、高、边框等属性,需要使用table、tr、td标签以及td标签的colspan属性进行行的合并操作

车流量计数统计算法

车流量计数统计算法 车流量计数统计算法是目前安防领域重要的应用方向,根据实时或历史视频流,实时统计不同类型的车流量 比如: 小客车,客货两用车,出租车,公交车,中客车,大客车,小货车 等类别的个数实时统计 算法目前的实现为:多目标检测+多目标跟

计算机科学——web

计算机科学——web ## HTML文件 一.HTML简介 1.定义:HTML是一种文本类,由浏览器解释执行的标签语言(是sgml下的一个应用)。 2.特性:具有平台无关性。 二.HTML文件 1.定义:使用HTML语言编写的文件称为HTML文件,也叫web页面(是一种纯文本文件),扩展名

服务计算-程序包开发读简单配置文件 v1

服务计算-程序包开发,读简单配置文件 v1 熟悉程序包的编写习惯(idioms)和风格(convetions) 熟悉 io 库操作 使用测试驱动的方法 简单 Go 程使用 事件通知 读取该配置文件,并保持监听 本次任务要求实现读取ini文件,观察实验要求后发现,代码主要需要实

在树莓派4B上部署intel NCS2神经网络计算棒与yolov3全过程(附代

在树莓派4B上部署intel NCS2神经网络计算棒与yolov3全过程(附代码)(一) 该项目全部经实测具有可行性,且经过比赛检验 不同时间软件版本可能不同,请按文中使用版本为准 软硬件要求 1.树莓派4B与16G及以上的SD卡和读卡器 2.intel NCS 2 神经网络计算棒 3.Win

高精度计算PI值 C语言 思路,高精度计算PI值相关推荐

  1. 高精度计算PI值 C语言 思路,高精度计算pi

    高精度计算PI值 题目描述 ​    使用双向链表作为存储结构,请根据用户输入的一个整数(该整数表示精确到小数点后的位数,可能要求精确到小数点后 500 位),高精度计算PI值.提示:可以利用反三角函 ...

  2. c语言编程实现表达式求值,c语言实现表达式求值的方法

    c语言实现表达式求值的方法 发布时间:2020-06-22 16:45:46 来源:亿速云 阅读:82 作者:Leah 这期内容当中小编将会给大家带来有关c语言实现表达式求值的方法,以专业的角度为大家 ...

  3. 易语言取linux命令返回值,易语言取程序返回值写法

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:易语言取程序返回值写法回答:在易语言中,程序包括"处理程序"都有六部分组成.一.程序名,就是程序的名称,程序名不 ...

  4. go slice获取唯一值_Go语言引用传递与值传递

    先说结论 GO中只有值传递,没有引用传递 所谓值传递,就是实参通过拷贝将自身内容传递给形参.也就是将传递的内容拷贝一份,给函数.所以函数外和函数里对这个参数地址求值,应该是不一样的. 证明如下: fu ...

  5. c++基本输入输出 输出不同精度的PI(程序给出的PI值为 3.14159265358979323846)。

    #include <iostream> // 包含流操作算子库 #include <iomanip> using namespace std; // 定义常量PI,后面可以直接 ...

  6. 2字节取值范围_C语言整数的取值范围以及数值溢出

    short.int.long 是C语言中常用的三种整数类型,分别称为短整型.整型.长整型.在现代操作系统中,short.int.long 的长度分别是 2.4.4 或者 8,它们只能存储有限的数值,当 ...

  7. 蚁群算法求最值c语言实现,蚁群算法代码(求函数最值)

    <蚁群算法代码(求函数最值)>由会员分享,可在线阅读,更多相关<蚁群算法代码(求函数最值)(4页珍藏版)>请在人人文库网上搜索. 1.function F=F(x1,x2) % ...

  8. 蚁群算法求函数最值c语言,蚁群算法代码(求函数最值)

    蚁群算法简单应用 function [F]=F(x1,x2) %目标函数 F=-(x1.^2+2*x2.^2-0.3*cos(3*pi*x1)-0.4*cos(4*pi*x2)+0.7); End f ...

  9. c语言 return两个值,c语言return能不能有2个以上返回值

    c语言return能不能有2个以上返回值 c语言return能不能有2个返回值 比如说return(a,b) 更新时间:2019-05-18 06:19 最满意答案 不是,要想返回2个以上返回值,建议 ...

最新文章

  1. Android LayoutInflater 源码解析
  2. Python类的自定义属性访问及动态属性设置
  3. 回归分析结果表格怎么填_手把手教绘制回归分析结果的森林图GraphPad Prism和Excel...
  4. 前端学习(661):逻辑运算符
  5. oracle中的存储过程教程,oracle 存储过程
  6. 阿里云、小米、华为手机竞争对比初评
  7. free -m 下的含义
  8. 互联网公司还要亏多久?
  9. 现实世界的Windows Azure:采访Applied Information Science的技术总监Vishwas Lele
  10. 初学swift笔记-数组、字典、元组(三)
  11. c语言中fac函数杨辉三角,C语言常用算法
  12. Linux命令行报错 bash: cannot create temp file for here-document: No space left on device
  13. 教程——sumolympics
  14. R语言软件和RStudio环境的下载与安装
  15. C语言二维数组指针(指向二维数组的指针)详解
  16. 网络小说海外“走红”的启示
  17. python基础语法大全
  18. 人脸检测——UnitBox
  19. 提高计算机软件速度的方法,小白看过来!提高电脑速度8种实用方法
  20. 华为p40还用麒麟990鸿蒙,华为P40渲染图曝光,2K挖孔屏+麒麟990+鸿蒙OS

热门文章

  1. 史上最强多线程面试47题(含答案),建议收藏
  2. MyBatis原理分析(通俗易懂)
  3. CAD多张图转化为PDF
  4. java immutable_Java 9:Immutable List的工厂方法详解
  5. SAP ODATA disable CSRF_TOKEN
  6. 中原银行java开发_2018中原银行校园招聘JAVA开发工程师公告
  7. SDWebImage 判断图片类型
  8. 分布式、集群、分布式服务框架
  9. SpringBoot+MybatisPlus+Vue项目(一):登录验证
  10. 在生鲜零售业,DolphinScheduler 还能这么玩!