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

CF 90A.Cableway(Java实现)

题目分析

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

思路分析

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

代码


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;//出发人数-2
				count+=1;//车辆+1
			if (g<=0&&b<=0&&r<=0){//如果都没人了
				break;//不用装下一车了
			}
				g-=2;//出发人数-2
				count+=1;//车辆+1
			if (r<=0&&b<=0&&g<=0){//如果都没人了
				break;//不用装下一车
			}
				b-=2;//出发,人数-2
				count+=1;//车辆+1
			if (g<=0&&r<=0&&b<=0){//如果都没人了
				break;//结束
			}
		}
		System.out.println(count);//输出29+载走了多少辆车
	}
}

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


import java.util.*;

public class Main {
	public static void main(String[] args)  {
		Scanner sc =new Scanner(System.in);
		int count=29;//同样初始时间为30
		int[] arr=new int[3];//数组用于存值
		arr[0]=sc.nextInt();//手动存值r
		arr[1]=sc.nextInt();//手动存值g
		arr[2]=sc.nextInt();//手动存值b
		boolean o=true;//锁定不断上车
		while (o){//在人数全部走完之前一直上车
			for (int j = 0; j < arr.length; j++) {//每一轮上车情况
				arr[j]-=2;//上车人数-2
				count+=1;//时间+1
				if (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.kler.cn/a/563876.html

相关文章:

  • python接入串口数据
  • 地理数据可视化:飞线说明(笔记)
  • 【MATLAB中的图像数据结构】
  • 企业知识库搭建:14款开源与免费系统选择
  • 电商项目-秒杀系统(一)秒杀业务分析
  • MySQL——创建与管理视图
  • 基于 Python 开发分布式任务调度系统案例剖析
  • 《深度学习实战》第2集-补充:卷积神经网络(CNN)与图像分类 实战代码解析和改进
  • 基于CNN的FashionMNIST数据集识别2——模型训练
  • Java+SpringBoot+Vue+数据可视化的在线家具定制服务平台(程序+论文+讲解+安装+调试+售后)
  • 网络安全体系
  • OpenGL 04--GLSL、数据类型、Uniform、着色器类
  • 服务器虚拟化是一种将物理服务器资源(如CPU、内存、存储、网络等)通过软件技术抽象、分割和整合,创建多个独立、隔离的虚拟服务器(虚拟机,VM)的技术。
  • C ++ 静态存储区+堆空间
  • 常见锁类型介绍
  • <网络> 网络基础3
  • AI大模型-提示工程学习笔记20-多模态思维链提示
  • C++ STL(二)deque
  • JVM垃圾回收器深度底层原理分析与知识体系构建
  • 神经网络 - 激活函数(Sigmoid 型函数)