表达式计算(二)
Time Limit: 1000 ms Memory Limit: 128 MB
提交 统计
问题描述
根据公式 s=1+1/2-1/3+1/4+1/5-1/6+1/7+1/8-1/9+ …… 计算s的值,直到最后一项小于指定的数值。
输入描述
一个0到1之间的小数,表示计算公式中所有的项均大于等于该数。
输出描述
一个4位小数,表示公式的计算结果。
样例输入
0.2
样例输出
1.6167
题目我代码输入0.2后结果是1.2167,不知道啥情况
表达式计算(二)
Time Limit: 1000 ms Memory Limit: 128 MB
提交 统计
问题描述
根据公式 s=1+1/2-1/3+1/4+1/5-1/6+1/7+1/8-1/9+ …… 计算s的值,直到最后一项小于指定的数值。
输入描述
一个0到1之间的小数,表示计算公式中所有的项均大于等于该数。
输出描述
一个4位小数,表示公式的计算结果。
样例输入
0.2
样例输出
1.6167
题目我代码输入0.2后结果是1.2167,不知道啥情况
#include <stdio.h>
int main()
{
double x, s, d;
int i = 1;
s = 1;
x = 1;
scanf("%lf", &d);
while (x > d)
{
i++;
x = 1.0 / i;
if (i % 3 == 0)
s -= x;
else
s += x;
}
printf("%.4f\n",s);
return 0;
}