鱼C论坛

 找回密码
 立即注册
查看: 2275|回复: 1

求e近似值问题

[复制链接]
发表于 2021-6-29 14:26:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
/*求e值
计算多项式1/0!+1/!+1/2!+1/3!....前n项和显示。其中,!表示阶乘计算,0!等于1。
Input
  若干个整数,以0结束。
Output
  输出N行,每行显示一个小数,保留小数点后两位。这个小数对应多项式的前n项和。
Sample Input
10 1 2 3 0
Sample Output
2.72
1.00
2.00
2.50*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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])));
        }
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 15:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表