请问这段代码哪里出错了呢?当我输入500时,就是求不到pi,正确的pi应该是3.14几啊。
vb求pi问题
答案:3 悬赏:30 手机版
解决时间 2021-05-16 01:03
- 提问者网友:火车头
- 2021-05-15 07:57
最佳答案
- 五星知识达人网友:酒醒三更
- 2021-05-15 09:32
Private Sub Form_Click()
Dim pi As Double
Dim t As Double
Dim n As Long
Dim f As Integer
n = InputBox("请输入N的值:")
pi = 0: t = 1: f = 1
For i = 1 To n
t = 1 / (2 * i - 1) '第1空
pi = pi + t * f '第2空
f = -f '第3空 这里用-f来控制就对了
Next i
Print "PI="; 4 * pi '第4空
End Sub
格里高利公式是这个样子的:
你用f = -1 ^ (i-1)有2个错误
第一:i-1当i=1时=0,任意数的0次方=1,而下次f应该是-1才对,所以你弄反了!
第二:-1 ^ (i-1),由于^的优先级别比-高,所以你以后每次得到的f都是-1,根本没有-1!
综合这两点,如果要在你的代码基础上修改的话,那一句应该改成这样:
f = (-1) ^ i
不过我认为还是没有f = -f来的简单和高效!
Dim pi As Double
Dim t As Double
Dim n As Long
Dim f As Integer
n = InputBox("请输入N的值:")
pi = 0: t = 1: f = 1
For i = 1 To n
t = 1 / (2 * i - 1) '第1空
pi = pi + t * f '第2空
f = -f '第3空 这里用-f来控制就对了
Next i
Print "PI="; 4 * pi '第4空
End Sub
格里高利公式是这个样子的:
你用f = -1 ^ (i-1)有2个错误
第一:i-1当i=1时=0,任意数的0次方=1,而下次f应该是-1才对,所以你弄反了!
第二:-1 ^ (i-1),由于^的优先级别比-高,所以你以后每次得到的f都是-1,根本没有-1!
综合这两点,如果要在你的代码基础上修改的话,那一句应该改成这样:
f = (-1) ^ i
不过我认为还是没有f = -f来的简单和高效!
全部回答
- 1楼网友:纵马山川剑自提
- 2021-05-15 12:37
你这似乎不是求PI的公式啊
- 2楼网友:野味小生
- 2021-05-15 10:58
能不能发代码,别发图片呀?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯