当前位置: 首页 > news >正文

小红杀怪(java)

思路:

枚举 二技能的使用次数

然后根据二技能的使用次数得出两只怪兽的剩余血量 

然后再除以1 技能的伤害 (向上取整)

因为你的剩余血量只有小于等于0 才算击败野怪

我按照这个思路写,结果发现向上取整函数好像没有使用正确

每次的sum 好像都没有向上取整

错误代码

package Lanqiao1;

import java.util.Scanner;

public class 小红杀怪 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner in = new Scanner(System.in);
//		两只怪兽的血量
		
		int a = in.nextInt();
		int b= in.nextInt();
//		两个技能的伤害
		int x = in.nextInt();
		int y =in.nextInt();
//		假设 使用二技能  k次
//		那么剩余的使用 一技能的次数就是 
		int sum =0; 
		int min =Integer.MAX_VALUE;
		for(int k = 0; k<=20; k++) {
			sum = k;
//			使用1技能的剩余次数等于 
//			怪兽a 剩余血量 除以  一技能的伤害,向上取整
			sum += Math.ceil( (a - k * y)/x );
//			System.out.print("sum1:"+sum);
//				怪兽b 剩余血量 除以  一技能的伤害,向上取整
			sum += Math.ceil( (b - k * y)/x );
//			System.out.print("sum2:"+sum);
//			求使用技能次数的最小值
			System.out.println(sum);
		min =Math.min(min, sum);
		}
		System.out.println(min);
		
		in.close();
	}

}

原因在于我括号的内部是整数的除法

,整数的出发是向下取整 ,

应该先转换成double 类型 才能实现向上取整 再转化为int

这是修改的地方

//			使用1技能的剩余次数等于 
//			怪兽a 剩余血量 除以  一技能的伤害,向上取整
			sum += Math.ceil( (	(double)a - k * y)/x );
//			(double)
//			System.out.print("sum1:"+sum);
//				怪兽b 剩余血量 除以  一技能的伤害,向上取整
			sum += Math.ceil( (	(double)b - k * y)/x );

修改之后的运行结果

emm还是不对

视频上说向上取整是这样

ok,继续改

我发现自己忽略了一个点 就是如果 怪兽血量都是负数了,还加到次数里面有问题

所以需要新增一个判断剩余血量的 如果剩余血量>0 才能使用1 技能 

http://www.dtcms.com/a/125445.html

相关文章:

  • 鸿蒙应用元服务开发-Account Kit配置scope权限
  • 【14】数据结构之哈夫曼树篇章
  • 【Qt】常用控件【按钮类】
  • EfficientNet 改进:添加CAA上下文锚定注意模块(2024改进方法)
  • Xsens MTI:在海上为风力发电场选择最佳位置
  • 使用Apache POI(Java)创建docx文档和表格
  • Baklib三步构建企业内容中台
  • 尚硅谷Java第 4、5 章IDEA,数组
  • 今日行情明日机会——20250411
  • 深入解析AI Agent核心能力:经验学习、工具调用与动态规划
  • 【含文档+PPT+源码】基于微信小程序的高校特色服装租赁系统
  • 第9课:多智能体系统行业落地案例
  • Java I/O 流体系详解与记忆方法
  • JAVA基础 - 高效管理线程隔离数据结构ThreadLocalMap
  • AI避坑:AI生成的文件格式不一定对
  • BERT - Bert模型框架复现
  • 4.11时钟延迟
  • linux sar 系统运行状态统计
  • HarmonyOS-ArkUIV2装饰器-@Param:组件外部输入
  • Spark-core编程总结
  • 接听电话,手机靠近耳朵后拿开,挂断电话,设备自动锁屏
  • 漏洞扫描系统docker版本更新(2025.4.10)
  • Trea CN多多与主流AI编程工具万字解析
  • [UEC++]UE5C++各类变量相关知识及其API(更新中)
  • C语言,原码、补码、反码
  • 操作系统 3.4-段页结合的实际内存管理
  • 【远程工具】1.1 时间处理设计与实现(datetime库lib.rs)
  • 图灵逆向——题十一-wasm小试牛刀
  • 实习期间如何提升留用概率?
  • 再谈 FireBird 自增字段在ClientDataSet里如何处理