vb计算下列公式之和,要求最后一项小于1/100000,1-1/5+1/10-1/17+ -------通向公式为 (-1)^(n-1)/n^2+1

来源:百度知道 编辑:UC知道 时间:2024/06/08 00:49:59
Dim s As Double, t As Double, i%
s = 0.5
t = 0

Do While t > 1 / 100000
i = i + 1
t = (-1) ^ (i - 1) / i ^ 2 + 1
s = s + t
If Abs(t) < 100000 Then
Exit Do
End If
Loop
MsgBox s
以上代码哪儿错了

'0.5+1/2-1/5+1/10-1/17
'(-1)^(n-1)/n^2+1
Dim s As Double, x As Double, n As Integer
n = 0
s = 0.5

Do
n = n + 1
x = (-1) ^ (n - 1) / (n ^ 2 + 1)
s = s + x
If Abs(x) < (1 / 100000) Then Exit Do
Loop
MsgBox s

你那段错误比较多……
1、开始t=0 < 1/100000,所以循环while t > 1 / 100000 跟本进不去,另外i没有赋初值,虽然默认值0是没错的
2、循环内部t= (-1) ^ (i - 1) / i ^ 2 + 1 少了括号,使得t永远>1,造成死循环,按题目t=(-1) ^ (i - 1) / (i ^ 2 + 1)
3、循环跳出的条件Abs(t) < 100000是误写错了吧,应该是Abs(t) < 1/100000

通项公式跟你的数据好像不符。按数据1/2-1/5+1/10-1/17……,通项公式:(-1)^(n-1)/(n^2+1)

dim m as double
dim k as double
dim n as double '(long)
n=1
do
k=(-1)^(n-1)/(N^2+1)
if k<1/100000 then exit do
m=m+k
n=n+1
loop

msgbox m