java计算1/1!+1/2!+1/3!+------+1/n!及其扩展

本文介绍如何使用Java编程实现计算阶乘加法、乘法和除法的类,并通过继承机制扩展到带有变量的特定表达式。主要讲解了`calculate`父类及`calculate_mul_x`和`calculate_div_x`子类的设计与`mainClass`中的测试用例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述
首先定义一个父类计算如下表达式:S=1+1/2!+1/3!+……+1/n!
然后,利用继承机制定义一个子类计算如下表达式:
S=x+x/2!+x/3!+……+x/n!
利用继承机制再定义一个子类计算如下表达式:
S=1+1/(2!*x)+1/(3!*x)+……+1/(n!*x)
定义主类,类名mainClass,在类中定义main方法,测试以上几个成员方法
思路

  1. 定义父类是calculate,还有它的两个派生类calculate_mul_x(乘)以及calculate_div_x(除)
  2. 只要计算出1/1!+1/2!+1/3!±-----+1/n!,那么它的两个派生计算结果就很容易得到,乘以x或者除以x就行了
  3. 计算阶乘和,另f [ n ] = 1 / n! ,那么f [ n ] = f [ n - 1 ] / n 所以只要循环 temp*=i;
    sum+=1.0/temp;
    这两个语句就行了,temp初始值为1

代码实例

package demoTest;

/*
@Author:HwSir
@DateTime:2022/8/18 21:12
@Motto:我所生活的,便是我所热爱的!
@Motto:纵使疾风起,人生不言弃!
*/

/*
    首先定义一个父类计算如下表达式:S=1+1/2!+1/3!+…..+1/n!
    然后,利用继承机制定义一个子类计算如下表达式:
    S=x+x/2!+x/3!+…..+x/n!
    利用继承机制再定义一个子类计算如下表达式:
    S=1+1/(2!*x)+1/(3!*x)+…..+1/(n!*x)
    定义主类,类名mainClass,在类中定义main方法,测试以上几个成员方法
*/

class calculate{
    private double sum=0;

    public double getSum(int n){
        int temp=1;
        for(int i=1;i<=n;i++){
            temp*=i;
            sum+=1.0/temp;
        }
        return sum;
    }
}

class calculate_mul_x extends calculate{
    public double getSum(int n,int x){
        return super.getSum(n)*x;
    }
}

class calculate_div_x extends calculate{
    public double getSum(int n,int x){
        return super.getSum(n);
    }
}

public class mainClass {
    public static void main(String[] args) {
    	//测试用例
        calculate c1=new calculate();
        System.out.println(c1.getSum(2));

        calculate_mul_x c2=new calculate_mul_x();
        System.out.println(c2.getSum(10,10));

        calculate_div_x c3=new calculate_div_x();
        System.out.println(c3.getSum(10,10));
    }
}

如有错误,敬请指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惜日短

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值