如何用C语言程序实现输出圆周率小数点后100位小数

如何用C语言程序实现输出圆周率小数点后100位小数,第1张

π=3.1415926……无穷多位, 历史上很多人都在计算这个数, 一直认为是一个非常复杂的问题。现在有了电脑, 这个问题就简单了。

电脑可以利用级数计算出很多高精度的值, 有关级数的问题请参考《高等数裂明学》,以下是比较有名的有关π的级数:

π = 2 + 2/3 + 2/3*2/5 + 2/3*2/5*3/7 + ...

例程:

/*这是一位大神编制的算pi程序,精确到800位,具体算法已不可考*/

#include<stdio.h>

int main()

{

    long   a=10000,b=0,c=3500,d=0,e=0,f=0,g[3501] 

    for(b-c)g[b++]=a/5 

    for(d=0,f=c*2c-=14,printf( "%.4d ",e+d/a),e=d%a) 

    察源空for(b=cd+=g[b]*a,g[b]=d%--f,d/=f--,--bd*=b) 

   败瞎 reutrn 0

}

Private Sub Command1_Click()

Dim a As Long, b As Long, d As Long, e As Integer, f(801) As Long, g As Long

Dim i As Long

Dim res As String

Dim index As Long

a = 10000

c = 800

For i = 0 To c

f(i) = a / 5

Next i

'预留足够长的缓冲空间

res = Space(9000)

'指针变量,指出在哪弯宽李里插埋迟入字符串

index = 1

Do While (c <>0)

d = 0

g = c * 2

b = c

Do While (1)

d = d + f(b) * a

g = g - 1

f(b) = d Mod g

d = Fix(d / g)

g = g - 1

b = b - 1

If b = 0 Then GoTo 22

d = d * b

Loop

22:

c = c - 14

substr = Format(Fix(e + d / a), "0000")

'填充字符串的相巧空应区间段数值

Mid$(res, index, 4) = substr

'调整指针变量

index = index + 5

If index >101 Then Exit Do '只显示100位

e = d Mod a

Loop

'删除多余字符

res = Left$(res, index - 1)

Text1.Text = res

Debug.Print index

End Sub

#include<stdio.h>

#include<math.h>

void main()

{

int sign=1// 符号变量 因为要正1-3/1 所以 在进行第一步运算的时候正1-某某

int i=1//  此时的i 也可以等于count 用来存储运算次数 建议用count 我在这里就不改了

double pi=0.0// 我们要求的结果 pi

double n=1.0//  我们的分母

double trem=1.0// 我们的分式本身

while(fabs(trem)>=1e-6) //题干要求的条件表达式

{

pi+=trem   //累加式pi=pi+trem

n+=2       // 分母每次加2

sign=-sign// 用来控制符号在这里同时也是充当分子的空陆老作用

trem=sign/n//分式本身=分子/分母

i++ // 每次运算完一遍+1

}

pi*=4// 这里也是根据题干来的 就悉差相当于斗升 1/2 *2 =1

}

望采纳谢谢 有什么不懂的可以随时追我


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12407872.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存