计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
1,首先简单理解,把整体的符号当成+。
代码如下:
#include<stdio.h>
int main()
{
int sum = 0;
int i = 0;
for (i = 1; i <= 100; i++)
{
sum +=1 / i;
}
printf("%d", sum);return 0;
}
运行结果:
得到结果是1,这是为什么?
原因很简单,分数的整型为0,所以求和之后的结果为1/1+0+0+...+0=1。
2,如何改?那就是把整型变为浮点型。
1——把整型int改为浮点型double
2——把1改为1.0。
3——把%d改为%f。
代码如下:
#include<stdio.h>
int main()
{
double sum = 0;
int i = 0;
for (i = 1; i <= 100; i++)
{
sum +=1.0 / i;
}
printf("%f", sum);return 0;
}
运行结果:
3,还没完,我们需要想办法把加号减号交互出现这种情况呈现出来。很简单,想一下,减去一个数就是加上一个数乘于负一。
这是只需要一个变量来存放-1就行了,当遇到需要加的时候,这需要把1赋给这个变量就行了。
代码如下:
#include<stdio.h>
int main()
{
double sum = 0;
int i = 0;
int hgh = 1;
for (i = 1; i <= 100; i++)
{
sum +=1.0 / i*hgh;
hgh = -hgh;
}
printf("%f", sum);return 0;
}
运行结果:
注:-hgh不能直接写为-1
如果是-1,那就不是+和-交替出现了。