使用while循环 计算1+1/2!+1/3!+...+1/20!

来源:互联网 发布:开源的网管软件 编辑:程序博客网 时间:2024/05/17 23:32
package practice;/*  使用while循环 计算1+1/2!+1/3!+...+1/20!  a用于存储前n个阶乘分之一    sum 用于累加和 */public class WhileDemo {public static void main(String[] args) {/*i=i+1的简写形式是i+=1;但是二者有本质的区别: 如果 i是short类型,+=:会自动类型提升,而=则不会所以 short i=0;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); } System.out.println(sum); System.out.println("_________________________"); ForDemo.main(args); System.out.println(Text.jieCheng(4));}}class ForDemo{public static void main(String[] args) {double sum = 0,a = 1;for (int i = 1; i <=20; i++) {sum +=a;a*=(1.0/i); System.out.println(a*i);}sum--;System.out.println(sum);}}//递归做法:效率不高,判断影响性能class Text{    public static void main(String[] args){//       double sum=0.0,count=1.0;// while(count<=20.0){// sum+=1.0/(jieCheng(count));// count++;// }// System.out.print(sum);    }           public static long  jieCheng(long sum){ /* for(int i=1;i<=c;i++){sum*=i; }*/ if(sum<=1)return 1; return sum*jieCheng(sum-1); }}


阅读全文
0 0
原创粉丝点击