当前位置: 首页> 文旅> 美景 > 网络品牌是什么_中国网财经_百度搜不干净的东西_现在有什么技能培训班

网络品牌是什么_中国网财经_百度搜不干净的东西_现在有什么技能培训班

时间:2025/7/23 6:52:29来源:https://blog.csdn.net/2301_76231651/article/details/147146603 浏览次数:0次
网络品牌是什么_中国网财经_百度搜不干净的东西_现在有什么技能培训班

思路:

枚举 二技能的使用次数

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

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

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

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

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

错误代码

package Lanqiao1;import java.util.Scanner;public class 小红杀怪 {public static void main(String[] args) {// TODO Auto-generated method stubScanner 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 技能 

关键字:网络品牌是什么_中国网财经_百度搜不干净的东西_现在有什么技能培训班

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: