实现1-1/2+1/3-1/4+1/5-1/6+1/7-1/8+1/9-1/10。
时间: 2023-11-19 08:05:50 浏览: 174
这是一个著名的数学问题,称为莱布尼茨级数。可以使用循环来实现累加,每次循环分母加2,分子为1或-1,根据分母的奇偶性来确定分子的正负号。以下是C语言的两种实现方式:
方法一:
```c
#include <stdio.h>
int main() {
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;
}
```
方法二:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main() {
int i = 0;
int n = 0;
float sum = 0.0;//不知道累加以后的结果暂且定义一个float类型的sum保存每次累加的值
for (i = 0; i <= 100; i++) {
sum = sum + ((1 / (n + 1.0))*(pow(-1,n)));//pow(-1,n)为-1的n次方,用该函数需要添加<math.h>的头文件
++n;//对n的值进行调整
}
printf("%f\n", sum);//输出f%,为输出浮点型
system("pause");
return 0;
}
```
阅读全文