【c语言】 1-1/2+1/3...+1/99-1/100求近似值
不知道你这个问题是否已经解决, 如果还没有解决的话:这个题的解法我们可以将其分为两个部分然后求和,即sum=sum1+sum2;
其中sum1用来表示奇数项
sum2用来表示偶数项
注意:因为都是分数,所以对sum,sum1和sum2定义的时候应该定为float型。
代码为:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, j;
float sum = 0;
float sum1 = 0;
float sum2 = 0;
for (i = 1; i < 100; i += 2)
sum1 = sum1 + 1.0 / i;
for (j = 2; j <= 100; j +=2)
sum2 = sum2 - 1.0 / j;
sum = sum1 + sum2;
printf("%f\n", sum);
system("pause");
return 0;
}
输出结果为:
解决方案:
根据参考资料中的代码段落0和段落3,我们可以使用以下的代码来计算 1-1/2+1/3...+1/99-1/100 的近似值:
#include <stdio.h>
#include <math.h>
int main()
{
int i;
double n = 0.00;
for(i = 1; i <= 100; i++)
{
if(i % 2 == 1)
{
// 奇数位加和
n += 1.0 / i;
}
else
{
// 偶数位减和
n -= 1.0 / i;
}
}
printf("n = %lf\n",n);
return 0;
}
代码解释:
stdio.h
和math.h
头文件。以上代码输出的结果为:
n = 0.688172
因此,1-1/2+1/3...+1/99-1/100 的近似值为 0.688172。
#include <stdio.h>
int main() {
int i;
double result = 0.0;
for (i = 1; i <= 100; i++) {
if (i % 2 == 0) {
result -= 1.0 / i;
} else {
result += 1.0 / i;
}
}
printf("近似值为: %lf", result);
return 0;
}