|
发表于 2021-6-29 16:10:59
|
显示全部楼层
这是java版本的:
- package com.lian.Test;
- import java.text.DecimalFormat;
- import java.util.Scanner;
- /**
- * @author :LSS
- * @description: 已知表达式,输入对应的数字,计算对应数字前n项的和,输入0程序结束
- * @date :2021/6/29 15:16
- */
- public class Test2 {
- //保留两位的数据模板
- private static DecimalFormat df = new DecimalFormat("######0.00");
- /**
- * 计算阶乘
- * @param n
- * @return
- */
- public static long getFactorial(int n){
- long result = 1;
- if (n == 0 || n == 1)
- return result;
- for (int i = 2; i <= n; i++) {
- result *= i;
- }
- return result;
- }
- /**
- * 计算1/0!+1/1!+...+1/n!的值
- * @param n
- * @return
- */
- public static double getNumber(int n){
- double result = 0;
- for (int i = 0; i < n; i++) {
- result += (1.0 / getFactorial(i));
- }
- return result;
- }
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int [] ints = new int[10];
- int flag = 0;
- while (true){
- int i = scanner.nextInt();
- if (i == 0)
- break;
- ints[flag] = i;
- flag++;
- }
- for (int i = 0; i < flag; i++) {
- System.out.println(df.format(getNumber(ints[i])));
- }
- }
- }
复制代码 |
|