gpt4 book ai didi

java算法计算精度

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:21 24 4
gpt4 key购买 nike

/**
* @(#)precision1.java
*
* precision1 application
*
* @author
* @version 1.00 2013/11/15
*/

public class precision1 {

public static void main(String[] args) {

// TODO, add your application code

int x = 4;
double increment = 1 ;
double coefficient = 1;
double currentValue = 1;
double precision = 0.01;

for( int i = 1;increment>precision ;i++)
{
currentValue= Math.pow(x,i)*coefficient+currentValue;
increment= Math.abs (Math.pow(x,i)*coefficient);
coefficient = coefficient * (1/(i+1));
System.out.println("Current result: " + currentValue);
}

}
}

问题是:如果给出数字 2,它应该向用户询问一个整数 x 和一个精度。它应该使用下面给出的公式,使用用户输入的 x 来计算 e 的近似值 x 次方。只要增量小于给定的精度值,您的程序就会停止计算。它也应该写成一个方法,而不是直接在你的main方法中。 the formula

输出应该是:

current result: 5.0
current result: 13.0
current result: 23.666666666666664
current result: 34.33333333333333
current result: 42.86666666666666
current result: 48.55555555555555
current result: 51.8063492063492
current result: 53.43174603174603
current result: 54.15414462081129
current result: 54.44310405643739
current result: 54.54818021484688
current result: 54.583205600983376
current result: 54.59398264287153
current result: 54.59706179769672
Result is 54.59706179769672

我的代码的输出是:

Current result: 5.0
Current result: 5.0

尽管询问输入部分为什么我的代码不起作用?

最佳答案

通过调试器快速运行它 -(1/(i+1))为整数除法,导致coefficient = coefficient * (1/(i+1));评估为 0,因此 increment= Math.abs (Math.pow(x,i)*coefficient);评估为 0

关于java算法计算精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19989790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com