高精度计算PI值 C语言 思路,高精度计算PI值
高精度计算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值相关推荐
- 高精度计算PI值 C语言 思路,高精度计算pi
高精度计算PI值 题目描述 使用双向链表作为存储结构,请根据用户输入的一个整数(该整数表示精确到小数点后的位数,可能要求精确到小数点后 500 位),高精度计算PI值.提示:可以利用反三角函 ...
- c语言编程实现表达式求值,c语言实现表达式求值的方法
c语言实现表达式求值的方法 发布时间:2020-06-22 16:45:46 来源:亿速云 阅读:82 作者:Leah 这期内容当中小编将会给大家带来有关c语言实现表达式求值的方法,以专业的角度为大家 ...
- 易语言取linux命令返回值,易语言取程序返回值写法
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:易语言取程序返回值写法回答:在易语言中,程序包括"处理程序"都有六部分组成.一.程序名,就是程序的名称,程序名不 ...
- go slice获取唯一值_Go语言引用传递与值传递
先说结论 GO中只有值传递,没有引用传递 所谓值传递,就是实参通过拷贝将自身内容传递给形参.也就是将传递的内容拷贝一份,给函数.所以函数外和函数里对这个参数地址求值,应该是不一样的. 证明如下: fu ...
- c++基本输入输出 输出不同精度的PI(程序给出的PI值为 3.14159265358979323846)。
#include <iostream> // 包含流操作算子库 #include <iomanip> using namespace std; // 定义常量PI,后面可以直接 ...
- 2字节取值范围_C语言整数的取值范围以及数值溢出
short.int.long 是C语言中常用的三种整数类型,分别称为短整型.整型.长整型.在现代操作系统中,short.int.long 的长度分别是 2.4.4 或者 8,它们只能存储有限的数值,当 ...
- 蚁群算法求最值c语言实现,蚁群算法代码(求函数最值)
<蚁群算法代码(求函数最值)>由会员分享,可在线阅读,更多相关<蚁群算法代码(求函数最值)(4页珍藏版)>请在人人文库网上搜索. 1.function F=F(x1,x2) % ...
- 蚁群算法求函数最值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 ...
- c语言 return两个值,c语言return能不能有2个以上返回值
c语言return能不能有2个以上返回值 c语言return能不能有2个返回值 比如说return(a,b) 更新时间:2019-05-18 06:19 最满意答案 不是,要想返回2个以上返回值,建议 ...
最新文章
- Android LayoutInflater 源码解析
- Python类的自定义属性访问及动态属性设置
- 回归分析结果表格怎么填_手把手教绘制回归分析结果的森林图GraphPad Prism和Excel...
- 前端学习(661):逻辑运算符
- oracle中的存储过程教程,oracle 存储过程
- 阿里云、小米、华为手机竞争对比初评
- free -m 下的含义
- 互联网公司还要亏多久?
- 现实世界的Windows Azure:采访Applied Information Science的技术总监Vishwas Lele
- 初学swift笔记-数组、字典、元组(三)
- c语言中fac函数杨辉三角,C语言常用算法
- Linux命令行报错 bash: cannot create temp file for here-document: No space left on device
- 教程——sumolympics
- R语言软件和RStudio环境的下载与安装
- C语言二维数组指针(指向二维数组的指针)详解
- 网络小说海外“走红”的启示
- python基础语法大全
- 人脸检测——UnitBox
- 提高计算机软件速度的方法,小白看过来!提高电脑速度8种实用方法
- 华为p40还用麒麟990鸿蒙,华为P40渲染图曝光,2K挖孔屏+麒麟990+鸿蒙OS
热门文章
- 史上最强多线程面试47题(含答案),建议收藏
- MyBatis原理分析(通俗易懂)
- CAD多张图转化为PDF
- java immutable_Java 9:Immutable List的工厂方法详解
- SAP ODATA disable CSRF_TOKEN
- 中原银行java开发_2018中原银行校园招聘JAVA开发工程师公告
- SDWebImage 判断图片类型
- 分布式、集群、分布式服务框架
- SpringBoot+MybatisPlus+Vue项目(一):登录验证
- 在生鲜零售业,DolphinScheduler 还能这么玩!