这道题怎么做解释一下,第5题,最好用java解,还有说下什么是步长 20

 我来答
伙哥_王爷
2017-03-05 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:73
采纳率:0%
帮助的人:47.6万
展开全部
package know;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class T12 {
 public static void main(String[] args) {
   System.out.println(cal("9"));
 }
 public static BigDecimal cal(String xstr) {
  BigDecimal x = new BigDecimal(xstr);
  BigDecimal result = BigDecimal.ONE;
  int end = calend(x);
  System.out.println(end);
  for (int i = 1; i <= end; i++) {
   result = result.add(x.pow(i).divide(calmot(i), 5,
     RoundingMode.HALF_UP));
  }
  return result;
 }
 /**
  * 计算n的最大值 计算到小数点后5位
  * 
  * @return
  */
 public static int calend(BigDecimal x) {
  int m = 1;
  while (x.pow(m).divide(calmot(m), 6, RoundingMode.HALF_UP)
    .compareTo(new BigDecimal("0.00001")) >= 0) {
   m++;
  }
  return m;
 }
 /**
  * 计算分母 m!
  * 
  * @return
  */
 public static BigDecimal calmot(int m) {
  BigDecimal mot = new BigDecimal(m);
  for (int i = m - 1; i > 0; i--) {
   mot = mot.multiply(new BigDecimal(i));
  }
  return mot;
 }
}

x的n次方/n!,肯定是n越大值越小的,题目要求精度计算到小数点后五位,那么当x的n次方/n!的值小于0.00001时,后面的值没必要计算了,根据这个就能得出n的最大值,其他的逻辑就很好实现了


0.2-1.0步长0.2,意思就是x取值0.2,0.4,0.6,0.8,1.0

更多追问追答
追问
那个大哥,麻烦可以解释一下题目是什么意思吗
追答
就是实现这个公式的逻辑啊,x是输入参数,e的x次方是返回值,不确定的只有n,但是根据题目,可以确定x取某值时n的最大值
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式