Java 求1/a!+1/(a-1)!+.......+1/2!+1/1!
1、在Eclipse中新建一个类,类名可以用中文。这里用“阶乘”做类名。

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

3、由于a的值是未争夏知的,也就是要使用场睡杰者输入。所以要用到Scanner。
所以在类名前加上import java.util.Scanner;

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);
}
}
}

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

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


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));
}
}

