CF 90A.Cableway(Java实现)

devtools/2025/2/27 22:27:16/

题目分析

        输入三个数字分别代表r,g,b三组学生数量,缆车按照r-g-b-r的方式循环,每一分钟来一辆车,且初始0时r车准备出发。全程上山时间为30分钟。

思路分析

        每走一辆车则到达山顶的时间就多一分钟,那只需要计算走了多少辆车。如果按照笨方法,顺着题目思路去做,每辆车一走,车人数就-2,如果三个车都没人了就结束

代码

java">
import java.util.*;public class Main {public static void main(String[] args)  {Scanner sc =new Scanner(System.in);int count=29;//初始化29,是缆车走到山顶的必要时间,但是为了让方法规整化,即第一辆缆车上山时间是0+count,但是其他的都是1+count,所以让count初始值变成29,这样也不影响后续操作int r= sc.nextInt();//输入r车人数int g= sc.nextInt();//输入g车人数int b= sc.nextInt();//输入b车人数while (r>0||g>0||b>0){//循环当三辆车都没人时自动结束r-=2;//出发人数-2count+=1;//车辆+1if (g<=0&&b<=0&&r<=0){//如果都没人了break;//不用装下一车了}g-=2;//出发人数-2count+=1;//车辆+1if (r<=0&&b<=0&&g<=0){//如果都没人了break;//不用装下一车}b-=2;//出发,人数-2count+=1;//车辆+1if (g<=0&&r<=0&&b<=0){//如果都没人了break;//结束}}System.out.println(count);//输出29+载走了多少辆车}
}

        但是这样看呢,重复的代码太多了,我们就再重新理一理

java">
import java.util.*;public class Main {public static void main(String[] args)  {Scanner sc =new Scanner(System.in);int count=29;//同样初始时间为30int[] arr=new int[3];//数组用于存值arr[0]=sc.nextInt();//手动存值rarr[1]=sc.nextInt();//手动存值garr[2]=sc.nextInt();//手动存值bboolean o=true;//锁定不断上车while (o){//在人数全部走完之前一直上车for (int j = 0; j < arr.length; j++) {//每一轮上车情况arr[j]-=2;//上车人数-2count+=1;//时间+1if (panduan(arr[0],arr[1],arr[2])){//扔进判断函数看当前是否已经人走完了该结束o=false;//结束外层while循环break;//结束for循环}}}System.out.println(count);//输出结果}static boolean panduan(int r,int g,int b){//判断目前人数情况if (g<=0&&r<=0&&b<=0){//如果都没人了return  true;//返回true说明可以结束了}return false;//还有人就继续}
}

         感谢您能够看到这里,一起见证小何同学的算法学习,如果您有不同的见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。


http://www.ppmy.cn/devtools/163182.html

相关文章

LLM2CLIP论文学习笔记:强大的语言模型解锁更丰富的视觉表征

1. 写在前面 今天分享的一篇论文《LLM2CLIP: P OWERFUL L ANGUAGE M ODEL U NLOCKS R ICHER V ISUAL R EPRESENTATION》&#xff0c; 2024年9月微软和同济大学的一篇paper&#xff0c; 是多模态领域的一篇工作&#xff0c;主要探索了如何将大模型融合到Clip模型里面来进一步提…

DeepSeek开源周高能开场:新一代高效推理引擎FlashMLA正式发布

全球AI社区沸腾&#xff01;DeepSeek开源周高能开场&#xff1a;新一代高效推理引擎FlashMLA正式发布 北京时间今晨&#xff0c;国内领先的人工智能研究机构深度求索&#xff08;DeepSeek&#xff09;在GitHub平台重磅推出全新开源项目FlashMLA&#xff0c;以破竹之势在开源界…

【多线程-第三天-NSOperation的练习-tableView异步下载网络图片-下载操作缓存池 Objective-C语言】

一、下载操作缓存池 1.下面我们来看操作缓存池,我们先演示一下问题,看看为什么要加这么一个操作缓存池,什么是操作缓存池,不用管呢,我们先来看啊,首先有什么问题, 看这个问题之前,我这儿写一个touch,点击屏幕的时候调用, 额,不能点击屏幕啊,因为现在屏幕点不着,我…

ss与netstat的区别

ss 和 netstat 都是 Linux 中用于查看网络连接的工具&#xff0c;但它们在实现和功能上有一些区别。 1. 实现方式 netstat: 基于 /proc/net 文件系统&#xff0c;读取 /proc/net/tcp、/proc/net/udp 等文件来获取网络连接信息。ss: 直接与内核的 netlink 接口通信&#xff0c…

vscode设置自动换行

vscode设置自动换行 方法 方法 点击文件->首选项->设置。搜索word wrap -> 选择 on 。 搜索Word Wrap&#xff0c;并把选项改为on。

HarmonyOS 5.0应用开发——鸿蒙接入高德地图实现POI搜索

【高心星出品】 文章目录 鸿蒙接入高德地图实现POI搜索运行结果&#xff1a;准备地图编写ArkUI布局来加载HTML地图 鸿蒙接入高德地图实现POI搜索 在当今数字化时代&#xff0c;地图应用已成为移动设备中不可或缺的一部分。随着鸿蒙系统的日益普及&#xff0c;如何在鸿蒙应用中…

自定义mybatis拦截器,在springboot项目中不起作用的解决方法

自定义mybatis拦截器&#xff0c;在springboot项目中不起作用的解决方法 自定义mybatis拦截器&#xff0c;在若依springboot项目中不起作用的原因 找到 MyBatisConfig 配置类&#xff0c;引入自定义配置 在sqlSessionFactory中添加自定义拦截器&#xff0c;就可以正常使用了…

【HTML】SVG标签的使用方式

SVG&#xff08;Scalable Vector Graphics&#xff09;是一种基于 XML 的矢量图形格式&#xff0c;广泛用于网页和应用程序中。以下是 SVG 标签的详细使用教程&#xff0c;涵盖基本形状、路径、文本、渐变、动画等内容。 1. SVG 基础结构 SVG 图形需要放在 <svg> 标签中…