15:苹果和虫子

该文介绍了一个Java程序,用于解决虫子吃苹果的问题。给定初始苹果数、虫子吃完一个苹果所需时间和总时间,程序利用Math.floor方法计算并输出经过指定时间后剩余的完整苹果数。由于结果需为整数,使用了向下取整确保无小数部分。
摘要由CSDN通过智能技术生成

一、问题链接

http://noi.openjudge.cn/ch0103/15/


二、问题需求

2.1 已知有n个苹果,虫子每x小时吃完一个苹果,且在吃完一个苹果之前不会吃另一个,求经过y小时后还剩余多少个完整的苹果
2.2 输入三个整数,分别代表上述nxy,计算并输出剩余的完整苹果数


三、相关知识点

序号知识点列表
知识点说明
3.1一个计算的例子假设有20个苹果,虫子每3小时吃完一个苹果,共吃了50小时,显然,剩余的苹果数可通过算式 20 − 50 ÷ 3 20-50\div 3 2050÷3计算,计算结果为3.3333······,则最终结果应该为3
3.2小数降位问题显然,在本题中,如果计算结果包含小数部分,则应该将小数部分降位为0,例如:
  ▲ 计算结果为3.23,则实际剩余3
  ▲ 计算结果为12.001,则实际剩余12
  ▲ 计算结果为195,则实际剩余195
  ▲ 以此类推
3.3Math类的floor方法将一个数的小数部分降位为0,小数部分为0或没有小数部分则不降位,称为地板操作,计算结果是一个double类型的浮点数,例如:
  ▲ Math.floor(3.23)得到3.0
  ▲ Math.floor(12.001)得到12.0
  ▲ Math.floor(195)得到195.0
  ▲ 以此类推
3.4是否会吃出负数结果题目已保证 y ≤ n × x y\leq n\times x yn×x,也即虫子不会将苹果吃为负数

四、算法思想

4.1 定义并输入三个int类型的整数nxy,分别代表苹果总数、虫子吃完一个苹果需要的时间、虫子吃苹果的总时间;
4.2 定义int类型的整数ans=(int)Math.floor(n-1.0*y/x),代表剩余完整的苹果数,输出ans


五、Java程序

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt(); // 定义并输入苹果总数
        int x = input.nextInt(); // 定义并输入虫子吃完一个苹果需要的时间
        int y = input.nextInt(); // 定义并输入虫子吃苹果的总时间
        int ans = (int) Math.floor(n - 1.0 * y / x); // 定义并计算剩余完整的苹果数
        System.out.print(ans);
    }
}

六、备注

6.1 本题更简单的解法为:直接令ans=(int)(n-1.0*y/x),也即直接取计算结果的整数部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江苏科技大学_计算机学院_潘磊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值