回复 7楼 beyondyf
其实这个问题是我从这个问题上想出来的一个问题,原问题是:
计算1-1/2+1/3-1/4+……+1/99-1/100;
S1:sgin=1
S2: sum=1
S3: deno=2
S4: sign=(-1)*sign
S5: term=sign*(1/deno)
S6: sum=sum+term
S7: deno=deno+1
S8: 若deno<=100返回S4;否则算法结束。
我从这个问题想到的那个问题,我本来想如果那个问题想明白了,这个问题也就想明白了,
刚开始分母=2,然后分子*-1就成了-1,当前的值就是-1*(1/2)就是-1/2,
接着总数=总数加上当前值,也就是1+(-1/2)等价于1-1/2,分母=分母+1;接着判断条件不成立,返回S4
这时候的分子不再是原来的1了,已经再上一轮变成了-1,所以在S4那里 分子*(-1)=1;
再然后到S5,当前值=1*(1/3),总数=总数+当前值,也就是 +(1/3)。
今天终于想通了,原来再运行到S4那里的时候,分子已经不再是原来的1了,在上一轮就已经变成-1了,我迷茫了2天了,做梦都在想这个问题。