恒定橡果的java习题二

文章描述了三个编程问题:小明利用促销策略购买最多水笔,大象喝水所需桶数计算,以及使用泰勒级数求函数近似值。通过算法解决实际生活中的问题和数学计算挑战。
摘要由CSDN通过智能技术生成

1.小明买笔

【问题描述】每年过年的时候,小明总是要为新学期准备很多的水笔。今天商店搞活动,每满5支送1支,若满20支则赠送5支,每支水笔5元。小明一共带了n(n>10)元钱,希望能买到最多的水笔,编写程序请你帮他计算他最多能买到多少支?

【输入形式】

输入小明带的钱数n(整数)
【输出形式】

输出小明最多可以买到几支笔(整数)
【样例输入】

100

【样例输出】

25
        public static void main(String[] args){
        Scanner scanner= new Scanner(System.in);
        int a,b,c;
        a = scanner.nextInt();//读取输入
        c = a / 5;//一支笔5块。计算能卖多少支笔
        if(c >= 5 && c < 20)
            c = c + c / 5;//如果买了20支以内,那么增加买五送一的数量
        if(c >= 20) {
            b = c % 20;
            c = c + (c / 20) * 5 + b / 5;//如果超过20支笔,单独计算超过的部分
        }
        System.out.print(c);
    }

这道题比较简单,到达20支送5支,超过部分按买五送一来,所以只要计算一次买二十送五就好了

2.大象喝水

【问题描述】一只大象口渴了,要喝20升水才能解渴,但现在只有一个深为h厘米,底面积为s平方厘米的小圆桶(h和s是浮点数)。编写程序,计算大象至少要喝多少桶水才能解渴。
【输入形式】

输入桶高和桶底面积

【输出形式】

大象至少要喝的桶数(整数)。
【样例输入】

30
50

【样例输出】

14
public static void main(String[] args) {
        Scanner a= new Scanner(System.in);
        double h = a.nextDouble();//读取深度
        double s =a.nextDouble();//读取底面积
        double b=h*s;//计算容积
        double c=20000/b;//计算桶的数量,因为水的密度为1所以不用额外转换
        int tong =(int)(c);//结果转换为整数
        if(tong %10==0){
            System.out.println(tong);
        }else{
            System.out.println(tong+1);
        }

3.求公式近似值

【问题描述】

已知ex的近似值可由下面公式计算得出:

ex=1 + x/1! + x2/2! + x3/3! + ...... + xn/n!
给定x和n,利用上述公式求得ex的近似值。

【输入形式】

从控制台输入数x,和整数n(n>=1),用空格隔开。

【输出形式】

向控制台输出求得的ex 的近似值(小数点后保留6位有效数据)。

【样例输入】

7   27

【样例输出】

1096.633156

【样例说明】

输入的x为7,n的值为27,即:求e7的近似值,利用上述公式求得的近似值为:1096.633156。

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double x = scanner.nextDouble();
        int y = scanner.nextInt();
        double a = jisuan(x, y);//调用方法jisuan并将结果赋值给a
        System.out.printf("%.6f", a);
    }
    public static double jisuan(double x, int y) {//定义一个静态方法jisaun,计算给定x值和项数y时的泰勒级数近似值
        double a = 1.0;// 初始化近似值为1.0,这是泰勒级数的第一项
        double b = 1.0;// 初始化当前项为1.0,后续将逐步更新此项
        double c = 1.0;// 初始化阶乘值为1.0,后续将逐步更新此项
        for (int i = 1; i <= n; i++) {
            b *= x / i;// 更新当前项的值,根据泰勒级数公式
            c *= i;// 计算并更新阶乘值
            a += b;// 将当前项累加到总近似值中
        }
        return a;
    }

### 回答1: 可以使用循环来计算ex的近似值,每一项都可以根据前一项推导得出。 首先,将第一项设为1,即: sum = 1 然后,循环n次,每次计算一项,累加到sum中,如下所示: for i in range(1, n+1): term = x**i / math.factorial(i) sum += term 最后,sum就是ex的近似值。 完整代码如下: import math x = 2 n = 10 sum = 1 for i in range(1, n+1): term = x**i / math.factorial(i) sum += term print(sum) # 输出:7.388712522045854 ### 回答2: 根据给定的公式ex=1+x/1!+x^2/2!+x^3/3!+...+xn/n!,我们可以利用该公式求得ex的近似值。具体步骤如下: 1. 首先,确定给定的x和n的值。 2. 创建一个变量result并初始化为1,作为计算结果的初始值。 3. 使用一个循环,从1到n逐个计算每一项的值,并累加到result上。 4. 在循环中,对于每一项,计算其分子为x的幂次方,分母为该项对应的阶乘。 5. 更新result的值,累加每一项的计算结果。 6. 当循环结束后,result即为ex的近似值。 下面是一个示例代码来计算ex的近似值: ```python def calculate_ex(x, n): result = 1 # 初始化结果为1 factorial = 1 # 阶乘的初始值 power = x # x的幂次方的初始值 for i in range(1, n + 1): factorial *= i # 更新阶乘的值 power *= x # 更新x的幂次方的值 result += power / factorial # 更新结果 return result x = 2 # 设定x的值 n = 10 # 设定n的值 approximation = calculate_ex(x, n) # 求得ex的近似值 print("ex的近似值为:", approximation) ``` 在上述示例代码中,我使用了一个循环来计算每一项的值,并将计算结果累加到result上。最后返回的result就是ex的近似值。您可以根据需要修改x和n的值来得到不同的近似结果。 ### 回答3: 根据所给的公式,我们可以通过循环来计算e^x的近似值。 首先,我们设定初始值为approximation = 1,这对应公式中的第一项ex=1。 然后,我们使用一个循环来计算剩余的项。 循环从 i=1 到 i=n,并在每次循环中更新近似值approximation。 在每一次循环中,我们需要计算 x^i/i!,并将其加到approximation上。 具体的代码如下: ``` x = 2 # 给定的x值 n = 5 # 给定的n值 approximation = 1 # 初始值 factorial = 1 # 阶乘的初始值 for i in range(1, n+1): factorial *= i # 计算 i 的阶乘 approximation += x**i / factorial # 计算 x^i/i! 并加到 approximation 上 print(approximation) # 输出近似值 ``` 以上代码中,我们使用了一个变量factorial来存储 i 的阶乘的中间结果。在每次循环中,我们更新factorial的值,然后将 x^i/i! 加到approximation上。 最后,我们打印出approximation的值,即得到了e^x的近似值。 在这个例子中,我们使用了x=2和n=5,你可以根据需要更改这些值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值