/**请输入正整数repeat(0
/*
*正整数repeat(0 (请输入0
读取一个正实数eps,计算并输出1-1/3 1/5-1/7 ……,
直到最后一个项目的绝对值小于eps (每个项目的绝对值大于或等于eps,并且必须以浮动类型输出数据)。
/括号内为说明
输入
2 (重复=2) )
1E-4
0.1
输出功率
0.7853482
0.83492064
*/
importjava.util.Scanner;
公共类测试40006 {
publicstaticvoidmain (字符串[ ] args ) {
int ri,repeat;
int temp,flag; //temp变量用于什么?
int i; //自己添加的变量
双精度EPS、item、sum;
sannerin=newscanner(system.in;
repeat=in.nextInt (;
for(ri=1; ri=repeat; ri ) {
eps=in.nextDouble (;
//--------/
sum=0;
item=1.0;
flag=-1;
i=1;
while(math.ABS(item )=eps ) )。
{
sum=sum item;
item=(双精度) flag/(2* i1 );
flag=-flag;
I;
}
system.out.println((float ) sum;
}
}
}
我知道示例中的while(Math.abs(x(item )=eps )是math.ABS ) x )取x的绝对值,而item是1.0意味着math.ABS(item )=eps是1.0
说白了,在这个例子中取item的绝对值是什么意思? 你想实现什么? 如果我输入eps=3,while(math.ABS(item )=eps ) item不也在3以上吗?
展开