java 差的绝对值_java 绝对值问题[通俗易懂]

/**输入一个正整数repeat(0/**输入一个正整数repeat(0读入1个正实数eps,计算并输出1-1/3+1/5-1/7+……,直到最后一项的绝对值小于eps为止(要求每一项的绝对值均大于等于eps,并以float类型输出数据)。例:括号内是说明输入2(repeat=2)1E-40.1输出0.78534820.83492064*/importjava.util.Scanner…

大家好,又见面了,我是你们的朋友全栈君。

/**输入一个正整数repeat(0

/*

* 输入一个正整数repeat (0

读入1 个正实数eps,计算并输出1-1/3+1/5-1/7+……,

直到最后一项的绝对值小于eps为止(要求每一项的绝对值均大于等于eps,并以float类型输出数据)。

例:括号内是说明

输入

2 (repeat=2)

1E-4

0.1

输出

0.7853482

0.83492064

*/

importjava.util.Scanner;

publicclass Test40006 {

public static void main(String[] args){

int ri, repeat;

int temp, flag; //temp变量干什么用?

int i; //自己加上的变量

double eps, item, sum;

Scanner in=new Scanner(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=(double)flag/(2*i+1);

flag=-flag;

i++;

}

System.out.println((float)sum);

}

}

}

例子中的 while(Math.abs(item)>=eps) 知道Math.abs(x)是取x的绝对值的,item是1.0就是说Math.abs(item)>=eps 就等于1.0>=eps,这是不是就是说eps只有比1.0大就可以进入while循环内啊??

说白了 这个例子中取item的绝对值有什么意思?是想实现什么?如果我输入eps=3 那么while(Math.abs(item)>=eps) item也不可能大于等于3啊??

展开

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125678.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号