
java求1-1/3+1/5-1/7+……
程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0<repeat<10),做repeat次下列运算:读入1个正实数eps,计算并输出1-1/3+1/5...
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
读入1 个正实数eps,计算并输出1-1/3+1/5-1/7+……,直到最后一项的绝对值小于eps为止(要求每一项的绝对值均大于等于eps,并以float类型输出数据)。
例:括号内是说明
输入
2 (repeat=2)
1E-4
0.1
输出
0.7853
0.8349
import java.util.Scanner;
public class Test40006 {
public static void main(String[] args) {
int ri, repeat;
int temp, flag;
double eps, item, sum;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri=1; ri<=repeat; ri++){
eps=in.nextDouble();
/*--------------------*/
System.out.println((int)(sum*10000+0.5)/10000.);
}
}
} 展开
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
读入1 个正实数eps,计算并输出1-1/3+1/5-1/7+……,直到最后一项的绝对值小于eps为止(要求每一项的绝对值均大于等于eps,并以float类型输出数据)。
例:括号内是说明
输入
2 (repeat=2)
1E-4
0.1
输出
0.7853
0.8349
import java.util.Scanner;
public class Test40006 {
public static void main(String[] args) {
int ri, repeat;
int temp, flag;
double eps, item, sum;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri=1; ri<=repeat; ri++){
eps=in.nextDouble();
/*--------------------*/
System.out.println((int)(sum*10000+0.5)/10000.);
}
}
} 展开
展开全部
/*
* 创建日期 2012-4-2
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
/**
* @author lenovo
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*
*/
import java.util.Scanner;
public class Test40006 {
public static void main(String[] args) {
int ri, repeat;
int temp, flag;
double eps, item, sum = 0;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri=1; ri<=repeat; ri++){
eps=in.nextDouble();
/*--------------------*/
sum= count(repeat,eps);
/*---------------------*/
System.out.println((int)(sum*10000+0.5)/10000.);
}
}
/**
* @param repeat
* @param eps
* @return s 每一次的运行结果
*/
private static double count(int repeat, double eps) {
double s=0;
//首先计算 1-1/3+1/5-1/7+……
//需要考虑符号和分母变化
long count=0;//项目数 1是第一项 -0.3^3是第二项 ……
count=cishu(eps);//求出项目数
for (long j=1;j<=count;j++){//把一个项目数的多项式的和计算出来
s+=fuhao(j-1,(double)1/(2*j-1));
}
return s;
// TODO 自动生成方法存根
}
/**
* @param eps
* @return m 运行次数 从1开始是第一项,-0.3……3是第二项
*/
private static long cishu(double eps) {
long m=0,n=1;
while(Math.abs((double)1/(2*n-1))>=eps){
m++;n++;
}
return m;
}
/**
* @param count
* @return fu 每一项的值
*/
private static double fuhao(long count,double fumu) {
double fu=0;
fu=Math.pow(-1,count)*fumu;
return fu;
}
}
希望对你有帮助
* 创建日期 2012-4-2
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
/**
* @author lenovo
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*
*/
import java.util.Scanner;
public class Test40006 {
public static void main(String[] args) {
int ri, repeat;
int temp, flag;
double eps, item, sum = 0;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri=1; ri<=repeat; ri++){
eps=in.nextDouble();
/*--------------------*/
sum= count(repeat,eps);
/*---------------------*/
System.out.println((int)(sum*10000+0.5)/10000.);
}
}
/**
* @param repeat
* @param eps
* @return s 每一次的运行结果
*/
private static double count(int repeat, double eps) {
double s=0;
//首先计算 1-1/3+1/5-1/7+……
//需要考虑符号和分母变化
long count=0;//项目数 1是第一项 -0.3^3是第二项 ……
count=cishu(eps);//求出项目数
for (long j=1;j<=count;j++){//把一个项目数的多项式的和计算出来
s+=fuhao(j-1,(double)1/(2*j-1));
}
return s;
// TODO 自动生成方法存根
}
/**
* @param eps
* @return m 运行次数 从1开始是第一项,-0.3……3是第二项
*/
private static long cishu(double eps) {
long m=0,n=1;
while(Math.abs((double)1/(2*n-1))>=eps){
m++;n++;
}
return m;
}
/**
* @param count
* @return fu 每一项的值
*/
private static double fuhao(long count,double fumu) {
double fu=0;
fu=Math.pow(-1,count)*fumu;
return fu;
}
}
希望对你有帮助

2025-09-24 广告
URule Pro Java 规则引擎,一款给业务人员使用的可视化商业决策规则引擎系统,打开浏览器即可开始设计业务规则;URule Pro是一款自主研发纯Java规则引擎,亦是一款国产智能风控决策引擎,可以运行在Windows、Linux、...
点击进入详情页
本回答由锐道提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询