已有101人关注
JAVA 从入门到精通 第三版4.12 练习题不懂了
发表在Java图书答疑 2015-10-09
是否精华
版块置顶:
public class Example_02 {
  public static void main(String args[])
{
      double sum = 0,a = 1;
      int i = 1;
      while(i <= 20)
      {
       sum = sum+a;
       i = i+1;
       a = a*(1.0/i);
      }
      System.out.println(sum);
    }
}
为什么要有a ;  (1.0/i)前面为什么要*a




我写的是
public class MapText {
public static void main(String args[]){

  double  x=1;
  double fenshu=0;
  while (x<=20){
  fenshu=fenshu+(1.0/x);
  x++;
  }
System.out.println("fenshu="+fenshu);
这个答案不对  但又看不懂标准答案
分享到:
精彩评论 1
菜鸟级精英
学分:0 LV1
TA的每日心情
开心
2020-03-23 21:05:48
2015-10-09
沙发
a = a*(1.0/i);//当前阶乘值 = 上一个数的阶乘值 × 1/循环次数
第一次循环(1/1!):1
第二次循环(1/2!):1 * 1/2
第三次循环(1/3!):1 * 1/2 * 1/3
...
第二十次循环(1/20!):1 * 1/2 * 1/3 * 1/4 * ... * 1/20

将每次阶乘的结果都加给sum值,sum就是最后的总数。

你写的代码错误在于“fenshu=fenshu+(1.0/x);”阶乘计应该该全是乘法,不应该使用加法。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照