#include
#include//true, false
int main(int argc, char const *argv[])
{
double ans = 1.0;
int count = 10, i;
bool isNegtive = false; //判断该数是该减去还是该加上,起始为加
for (i = 2; i <= count; i += 2)
{
double temp = 1.0 / i; //写成 1/i 会进行整数除法
if (isNegtive) temp = -temp;
ans += temp;
isNegtive = !isNegtive; // 下一个数为相反方式
}
printf("%f\n", ans);
return 0;
}
你可以把问题看成由三个部分组成,分子a、分母b、符号正负f。
很明显,a=1,b每次加上2,f从第二项往后,正负交替出现,再定义一个变量存结果就好了。
很简单的,自己试试。。。
最后得到浮点型数据,把所有的分子加个.0就可以了
#include
int main()
{
float a,s=0;
int b=2;
while(b<=10)
{
if(b/2%2==0)
{
s=s-1.0/b;
}
else{ s=s+1.0/b;}
b=b+2;
}
printf("%f\n",s+1);
return 0;
}