求助,谁能帮帮我做做这个,急!!!!!

2024-11-01 23:56:59
推荐回答(2个)
回答1:

分析:

1,关于循环:我们把分子都看成1,分母的绝对值变化是从1开始,递增3:某一项绝对值小于10的-6次方,这里分子都是1,也就意味着分母的绝对值大于10的6次方即可,用long稳妥一下

2,关于符号:间隔变号,可以考虑设计一个bool变量,每次循环变更一次来控制符号;也可以考虑看分母,分母奇数时候,都是正项,偶数都是负项;两种方式均可,我这里用前面的


程序参考:

float result=0;

bool isPositive=true;

for(long i=1; i>100000;i+=3)

{

if(isPositive) result+=1.0/((float)i);

else result-=1.0/((float)i);

isPositive=!isPositive;

}

result应该就是结果了

回答2:

#include

int main()
{
double lfRes = 0.0;
int lDenominator = 1;
while (1)
{
double lfNow = 1.0 / lDenominator;

if (lDenominator % 2 == 0)
{
lfRes -= lfNow;
}
else
{
lfRes += lfNow;
}

if (lfNow < 0.000001)
{
break;
}

lDenominator += 3;
}

printf("result is %g\r\n", lfRes);
}