JAVA语言求1/2+1/3+1/4……1/20的和,用while语句做,这个是下面的代码,有几个问题,请大家一定帮我解答

JAVA语言求1/2+1/3+1/4……1/20的和,用while语句做的。代码如下:
public class Sum {
public static void main(String[] args) {

double isShu = 1;
int fenmu = 1;
double sum = 0;

while(fenmu<=20){
sum = sum + isShu; //为什么这句代码要写到下面两句代码的前面?
fenmu = fenmu+1;
isShu = (isShu*(1.0/fenmu));

}
System.out.println(sum);

}

问题1:如果用while语句做这样的和上面的代码代码方法是不是最简单且逻辑最缜密的方法?
问题2:为什么while循环里面 sum = sum + isShu; 要写到fenmu = fenmu+1; isShu = (isShu*(1.0/fenmu));的前面,不然答案就要少1? 我一直没有想通……

问题3:如果不用while循环做用for循环做该怎么做?

谢谢了 就上面3个简答的问题,我是初学者很多都不太会所以请大家教教我。

首先一点,你分享的这个答案你确定是正确的?

public class Sum {
   public static void main(String[] args) {

           double isShu = 1;
           int fenmu = 1;
           double sum = 0;

           while(fenmu<=20){         
               fenmu = fenmu+1;
               isShu = 1.0/fenmu;
                 sum = sum + isShu; 
   }
     System.out.println(sum);
}
             

}
写这个计算公式你应该以数学的角度去想.
Step1. sum=1/2+0;
Step2. sum=1/3+sum;
Step3. sum=1/4+sum;
.以此类推
.
.
Step19. sum=1/20+sum;

第一个问题.用while是不是最快最简便的?

对于一开始初学者来说,实现一个问题的教程上提供的方法不一定就是最好的,只是让你们了解这个方法的作用,以及应用场景,没必要因为这种问题而专牛角尖.

问题二.对照上面提供给你的例子,你自己把每次循环的运算过程先一步步分解清楚,这个问题你自己就能解决了.

问题三.

public class Sum {
  public static void main(String[] args) {

          double isShu = 1;
          double sum = 0;
           for( int fenmu = 2;fenmu<=20;fenmu++){        
              isShu = 1.0/fenmu;
                sum = sum + isShu;
  }
    System.out.println(sum);
}
           

}

追问

问题2 帮我解答一下啊,我投好昏,实在想不了了呀~

追答

因为isShu这个变量每次isShu = (isShu*(1.0/fenmu));发生改变后再加上sum。

温馨提示:内容为网友见解,仅供参考
无其他回答

用java语言中while循环语句求:1+1\/2!+1\/3!+...+1\/20!之和。
public static void main(String[] args) { long i = 1;long parse = 1;double sum = 0;while(i<=20){ parse *= i;sum += 1D\/parse;i++;} System.out.println(sum);}

...while和for循环求1+1\/2!+1\/3!+…前20项的和的代码
表示阶乘,是指从这个正整数开始,依次乘以当前数字-1,直到乘数变为1为止。所以阶乘不可能是针对1\/2这样的数字的,上面的式子 !阶乘的优先级是比除法高的do-while解法:int result = 0;int temp = 1;int 1 = 1;do{ result += 1\/(temp *= i++);}while( i<= 20) for解法:int r...

编写Java程序,使用while循环语句计算1+1\/2!+1\/3!…1\/20!之和.
i+=1;\/\/编译通过,类型提升 i=i+1;\/\/编译失败,因为这是赋值操作,i是short类型,而1是默认是int类型 \/ double sum = 0,a = 1;\/\/因为是分式,所以用double类型 int i = 1;while(i <= 20) { sum +=a;i++;a*=(1.0\/i);\/\/使a的值发生变化 System.out.println(a*i);} Syst...

...while和for循环求1+1\/2!+1\/3!+…前20项的和的代码
回答:晕 我估计你是 理解错了 不可能让你求 小数的 阶乘的 是让你求 1 除以 2! 也就是 1 除以 2的阶乘 1 除以 3的阶乘.... 不是让你求 二分之一 的阶乘 三分之一的阶乘....

java while语句 求1+1\/2+1\/3+1\/4
sum = sum + isShu; } System.out.println(sum);} }写这个计算公式你应该以数学的角度去想.Step1. sum=1\/2+0;Step2. sum=1\/3+sum;Step3. sum=1\/4+sum;.以此类推..Step19. sum=1\/20+sum;第一个问题.用while是不是最快最简便的?对于一开始初学者来说,实现一个问题的教...

java用do-while循环计算1 1\/2! 1\/3! 1\/4! ...的前20项和
(也给你写了个方法)public static double caculate(int n) { double sum = 0.0;int i=1;do{ sum = sum + 1.0 \/ jieCheng(i);i++;} while(i<=n)return sum;} 用的时候直接调用这个方法就可以了,例如计算前20的:caculate(20);n随便你多少 o(∩_∩)o...哈哈 ...

求助java的while编写1到20的阶乘的和
求助java的while编写1到20的阶乘的和怎么得20!=2432902008176640000 wu0o0uw 2018-11-23 | 浏览19 次 java编程语言 |举报 答题抽奖 首次认真答题后 即可获得3次抽奖机会,100%中奖。 更多问题 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 java while 阶乘 搜索资料本...

求1\/1!+1\/2!+1\/3!...+1\/20!的java编程!!!应急...谢谢哪位大哥帮忙...
1\/20!+...+1\/2!+1其实就=[[...[[1\/20+1]*19+1]*...*1\/2+1]具体程序如下:public class Test { \/ param args the command line arguments \/ public static void main(String[] args) { \/\/ TODO code application logic here for (int i = 1; i <= 20; i++) { if (i...

Java计算 1+1\/2!+1\/3!···1\/20! 谁能给我详细讲解一下以下代码这个阶...
这里面的句子不多,反映你所谓的阶乘就一个语句,factorial = factorial.multiply(new BigDecimal(1.0\/i)); \/\/计算阶乘项 其他是1~20的循环 应该看得懂吧。然后你就会发现其实只涉及到一个问题就是 BigDecimal.multiply(BigDecimal) 是怎么算的。根据API multiplypublic BigDecimalmultiply(BigDecimal...

用for循环语句计算1+1\/2+1\/3+1\/4~~~+1\/1+n其中n=1,2,
我用java写的 n是你要加到得那个数,我没看清你要加到几分之几 就用n代替了 如果你要加到1/100就把n换成100 class A{ public static voidmain(String args[]){ double b=0;for(int i=1;i<=n;i++){ b+=1\/(double)i;} System.out.println(b);} } ...

相似回答