Java 求1/a!+1/(a-1)!+.......+1/2!+1/1!

2025-10-19 05:24:50

1、在Eclipse中新建一个类,类名可以用中文。这里用“阶乘”做类名。

Java 求1/a!+1/(a-1)!+.......+1/2!+1/1!

2、系统会自动生成以下代码

Java 求1/a!+1/(a-1)!+.......+1/2!+1/1!

3、由于a的值是未争夏知的,也就是要使用场睡杰者输入。所以要用到Scanner。

所以在类名前加上import java.util.Scanner;

Java 求1/a!+1/(a-1)!+.......+1/2!+1/1!

4、输光趴入以下代码

import java.util.Scanner;

public class 阶乘 {

public static void main(String[] args) {

// TODO 自动生成的方法存根

Scanner scanner=new Scanner(System.in);

int a=scanner.nextInt();

int sunm=0;

for(int i=0;i<=a;i++){

int c=1;

for(int j=1;j<=i;j++){

c=c*j;

}

float m=1.0f/c;

System.out.println(i+"!="+c);

System.out.println("1/"+i+"!="+m);

}

}

}

Java 求1/a!+1/(a-1)!+.......+1/2!+1/1!

5、输入4调试;结果如下

Java 求1/a!+1/(a-1)!+.......+1/2!+1/1!

6、结果要求保留两位有效数字,所以要用到DecimalFormat

Java 求1/a!+1/(a-1)!+.......+1/2!+1/1!

Java 求1/a!+1/(a-1)!+.......+1/2!+1/1!

7、调试后发现问题 0!=1,所以把for(int i=0;i<=a;i++)改成for(int i=1;i<=a;i++)。完整代码如下

import java.util.Scanner;

public class 阶乘 {

public static void main(String[] args) {

// TODO 自动生成的方法存根

Scanner scanner=new Scanner(System.in);

int a=scanner.nextInt();

java.text.DecimalFormat df=new java.text.DecimalFormat("#.##");

float sunm=0;

for(int i=1;i<=a;i++){

int c=1;

for(int j=1;j<=i;j++){

c=c*j;

}

float m=1.0f/c;

System.out.println(i+"!="+c);

System.out.println("1/"+i+"!="+df.format(m));

sunm=m+sunm;

}

System.out.println("1/"+a+"!+"+"1/"+(a-1)+"!+"+"......+"+"1/2!+"+"1/1!="+df.format(sunm));

}

}

Java 求1/a!+1/(a-1)!+.......+1/2!+1/1!

Java 求1/a!+1/(a-1)!+.......+1/2!+1/1!

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢