1-1/2+1/3交替到1/100用C语言怎么做?
时间: 2024-01-29 22:04:55 浏览: 31
以下是用C语言实现1-1/2+1/3交替到1/100的代码:
```c
#include <stdio.h>
int main() {
int i;
float result = 0;
for (i = 1; i <= 100; i++) {
if (i % 2 == 0) {
result -= 1.0 / i;
} else {
result += 1.0 / i;
}
}
printf("%f\n", result);
return 0;
}
```
这段代码使用循环从1到100,通过判断奇偶性来决定是加上还是减去当前项的倒数。最后输出结果为-0.688172。
相关问题
计算1-1/2+1/3-1/4+…+1/99-1/100
这个数列是一个交替的调和级数,可以使用以下公式进行求和:
sum = 1 - 1/2 + 1/3 - 1/4 + ... + 1/99 - 1/100
= ln(2) + (ln(3) - ln(2)) - (ln(4) - ln(3)) + ... + (ln(100) - ln(99))
= ln(2/1) + ln(3/2) - ln(4/3) + ... + ln(100/99)
= ln(2/1 * 3/2 * 5/4 * ... * 99/98 * 100/99)
= ln(2 * 3 * 5 * ... * 99 * 100 / (1 * 2 * 4 * ... * 98 * 99))
因此,这个数列的和约为0.688172179310195。
C语言用while求1-1/2+1/3-1/4+…-1/100的和
以下是C语言用while求1-1/2+1/3-1/4+…-1/100的和的代码实现:
```c
#include <stdio.h>
int main(void) {
int i = 1;
int j = 1;
double sum = 0; //结果肯定是小数, 所以要定义成double或float型
while (1.0/i > 1e-6) /*当1/i小于10的-6次方时停止循环。这个循环条件是自己定的, 定得越小最后的结果就越精确。注意1一定要写成小数的形式即1.0*/
{
sum += (1.0 / i) * j;
i+=2;
j = -j; //实现正负交替
}
sum *=4;
printf("sum = %lf\n", sum); //double是%lf, 取6位小数是%.6
return 0;}
```