蓝桥杯练习题-穷举模拟

news2024/11/28 23:13:44

📑前言

本文主要是【穷举模拟】——蓝桥杯练习题-穷举模拟的文章,如果有什么需要改进的地方还请大佬指出⛺️

🎬作者简介:大家好,我是听风与他🥇
☁️博客首页:CSDN主页听风与他
🌄每日一句:狠狠沉淀,顶峰相见

目录

    • 📑前言
    • 1.找出凶手
    • 2.分发糖果
    • 📑文章末尾

1.找出凶手

  • 题目描述:已知A、B、C、D中有一个凶手,对他们审讯,已知三个人说真话,一个人说假话。谁是凶手

  • A说不是我

  • B说是C

  • C说是D

  • D说C在胡说

请你找出凶手

package 穷举模拟;

public class Killer {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int count = 0;//统计有几个人说的是真话
		for(int killer='A';killer<='D';killer++) {
			count = 0;
			if(killer!='A') count++;
			if(killer=='C') count++;
			if(killer=='D') count++;
			if(killer!='D') count++;
			if (count==3) {
				System.out.println((char)killer);
			}
		}
	}

}

2.分发糖果

  • 题目描述:

    • 每个小孩若干个糖果,且不相等
    • 每个小孩将自己糖果一半给右边小孩,最后一个小孩分给第一个小孩
    • 每次结束如果有人是奇数个糖果,补给一个
    • 所有小孩都相等,游戏结束

    求需要多少次分配,才能使游戏结束

package 穷举模拟;

import java.util.Arrays;

public class test1 {
/*
分发糖果
每个小孩若干个,不相等
每个小孩将自己糖果一半给右边小孩
如果有人奇数,补给一个
所有小孩都相等,游戏结束
 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[] = {10,2,8,22,16,4,10,6,14,20};
		int count=0;
		while(isGameOver(a)==false) {
			count++;
			fenpei(a);//先分配
			System.out.println(Arrays.toString(a));
			supply(a);//后补给
		}
		System.out.println(count+1);
		
	}
	public static void fenpei(int a[]) {
		int n = a.length;
		int half = a[n-1]/2;
		a[n-1]/=2;
		for(int i=n-1;i>=1;i--) {
			a[i]=a[i]+a[i-1]/2;//右边的等于左边的给自己一半
			a[i-1]=a[i-1]/2;//左边的人只剩下一半
		}
		a[0]=a[0]+half;
	}
	public static void supply(int a[]) {
		for(int i=0;i<a.length;i++) {
			if(a[i]%2==1) {
				a[i]++;//奇数补给一个
			}
		}
	}
	
	public static boolean isGameOver(int a[]) {
		for(int i=1;i<a.length;i++) {
			if(a[i]!=a[0]) {
				return false;
			}
		}
		return true;
	}

}

写法二:

		int a[] = {10,2,8,22,16,4,10,6,14,20};
		int n = a.length;
		int count = 0;
		while(true) {
			boolean flag = true;
			int half = a[n-1]/2;
			a[n-1]/=2;
			for(int i=n-1;i>=1;i--) {
				a[i]+=a[i-1]/2;
				a[i-1]/=2;
			}
			a[0]+=half;
			System.out.println(Arrays.toString(a));
			for(int i=0;i<n;i++) {
				if(a[i]%2==1)	a[i]++;
			}
			for(int i=1;i<n;i++) {
				if(a[i]!=a[0]) flag=false;
			}
			count=count+1;
			if (flag) {
				System.out.println("count:"+count+1);
				break;
			}
		}

📑文章末尾

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1392372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apollo添加新的lidar检测算法

lidar检测算法 概述架构体系添加lidar检测算法定义一个继承基类 base_lidar_detector 的类实现新类 NewLidarDetector为新类 NewLidarDetector 配置config和param的proto文件更新 lidar_obstacle_detection.conf 主页传送门 &#xff1a; &#x1f4c0; 传送 概述 lidar&#…

使用WAF防御网络上的隐蔽威胁之扫描器

在网络安全领域&#xff0c;扫描器是用于侦察和识别网络系统漏洞的工具。 它们可以帮助网络管理员识别安全漏洞&#xff0c;也可能被攻击者用来寻找攻击目标。 扫描器的基本概念 定义&#xff1a;扫描器是一种自动化工具&#xff0c;用于探测网络和服务器中的漏洞、开放端口、…

软件测试面试题整理

软件测试的几个阶段 在进行Beta测试之前和之后&#xff0c;通常会进行以下几种测试&#xff1a; 内部测试&#xff08;Internal Testing&#xff09; 在Beta测试之前&#xff0c;开发团队会进行内部测试&#xff0c;对软件进行全面的测试。这个阶段包括单元测试、集成测试和系…

使用原生input模拟器样式正常,但是真机上 input框溢出

目录 一、问题 二、解决方法 三、总结 tiips:如嫌繁琐&#xff0c;直接移步总结即可&#xff01; 一、问题 1.使用原生input写了一个搜索框&#xff0c;在模拟器和pc上一切正常。但是打包放到手机上&#xff0c;样式就有问题&#xff1a;这个搜索框的布局是正常的&#xf…

Python 布尔类型:了解真假之间的探索

Python 是一种备受欢迎的编程语言&#xff0c;以其简洁、灵活和易学易用而闻名。其中一个重要的数据类型就是布尔类型&#xff08;bool&#xff09;&#xff0c;它代表了逻辑上的真&#xff08;True&#xff09;和假&#xff08;False&#xff09;。在 Python 中&#xff0c;布…

macOS向ntfs格式的移动硬盘写数据

最近想把日常拍摄的照片从SD存储卡中转存到闲置的移动硬盘中&#xff0c;但是转存的时候发现&#xff0c;mac只能读我硬盘里的东西&#xff0c;无法将数据写入到移动硬盘中&#xff0c;也无法删除移动硬盘的数据。后来在网上查了许久资料&#xff0c;终于可实现mac对移动硬盘写…

大模型学习与实践笔记(六)

一、finetune 简介 两种微调模式&#xff1a;增量预训练 与指令跟随 1.增量预训练 2.指令微调 二、LoRA 与 QLoRA 介绍 三、XTuner 介绍 四、低显存玩转LLM的方法

SpringBoot教程(十七) | SpringBoot中ApplicationEvent用法

SpringBoot教程(十七) | SpringBoot中ApplicationEvent用法 对不起大家&#xff0c;昨天文章里的告别说早了&#xff0c;这个系列还不能就这么结束。 我们前面的文章中讲解过RabbitMQ的用法&#xff0c;所谓MQ就是一种发布订阅模式的消息模型。在Spring中其实本身也为我们提供…

寒假学习打字:提前实现弯道超车

寒假对于学生来说&#xff0c;通常是一个宝贵的时间段&#xff0c;可以用来放松、充实自己&#xff0c;或者提高一项重要的技能——打字。在这个数字时代&#xff0c;打字技能变得比以往任何时候都更加重要。无论是在学校的论文写作&#xff0c;还是在工作中处理电子邮件&#…

计算机网络-VLAN间通信

之前复习了VLAN的概念以及几个接口类型。VLAN在二层可以实现广播域的划分&#xff0c;VLAN间可以实现二层通信&#xff0c;但是不能实现三层通信&#xff0c;需要借助其它方式。 一、概述 实际网络部署中一般会将不同IP地址段划分到不同的VLAN。同VLAN且同网段的PC之间可直接进…

CentOs7.8安装原生Jenkins2.38教程

CentOs7.8安装Jenkins教程 前提&#xff1a;1、下载安装包2、安装&#xff1a;3、检验是否安装成功&#xff1a;4、查询java路径5、修改配置文件6、创建jenkins用户7、给jenkins用户授权8、开放防火墙端口9、运行和其他jenkins相关命令10、异常情况10.1 提示超时&#xff0c;查…

RabbitMQ常见问题之延迟消息

文章目录 一、死信交换机二、TTL1. Queue指定死信交换机并设置TTL2. 消息设置TTL 三、延迟队列1. SpringAMQP创建延迟队列2. 设置消息延迟3. 测试 一、死信交换机 当一个队列中的消息满足下列情况之一时&#xff0c;可以成为死信&#xff08;dead letter&#xff09;&#xff…

回馈科教,非凸科技助力第48届ICPC亚洲区决赛

1月12日-14日&#xff0c;“华为杯”第48届国际大学生程序设计竞赛&#xff08;ICPC&#xff09;亚洲区决赛在上海大学成功举办。非凸科技作为此次赛事的支持方之一&#xff0c;希望携手各方共同推动计算机科学和技术的发展。 这是一场智慧的巅峰对决&#xff0c;320支优秀队伍…

探索Java的神秘运行机制:揭秘整体运行流程

目录 1. 背景 2.整体流程 2.1 一看整体流程 2.1 再看运行流程 3. 类的加载过程 3.1 初探类的加载过程 4. 类加载机制 4.1 类加载器 4.2 双亲委派机制 5. 小结&#xff1a; 1. 背景 学习了这么多年的Java&#xff0c;把自己的理解写成JVM系列&#xff0c;以便于后面的…

openGauss学习笔记-200 openGauss 数据库运维-常见故障定位案例-表文件大小无变化

文章目录 openGauss学习笔记-200 openGauss 数据库运维-常见故障定位案例-表文件大小无变化200.1 VACUUM FULL一张表后&#xff0c;表文件大小无变化200.1.1 问题现象200.1.2 原因分析200.1.3 处理办法 openGauss学习笔记-200 openGauss 数据库运维-常见故障定位案例-表文件大小…

刷卡打印机,后台更换别人绑定的卡,无法生效,怎么解决?

环境&#xff1a; 柯美287打印机 问题描述&#xff1a; 刷卡打印机&#xff0c;后台更换别人绑定的卡&#xff0c;无法生效&#xff0c;怎么解决&#xff1f; 解决方案&#xff1a; 别人之前离职的卡刷了把他后面卡号复制好 2.搜索之前那个离职的用户&#xff0c;打开设置…

JavaScript 入门手册

准备好快速学习 JavaScript了吗&#xff1f; 如果是&#xff0c;那么你需要这份 JavaScript 小抄。它以清晰、简洁和初学者友好的方式介绍了 JavaScript 的基础知识。 将它作为提高 JavaScript 技能的参考或指南。 让我们深入学习。 什么是 JavaScript&#xff1f; JavaSc…

mPLUG-Owl2: 7B的多模态大模型

前言 语言模型&#xff1a;LLama2 - 7B视觉模型&#xff1a;Clip-L 0.3B 痛点 作者任务以往的方法&#xff08;Qformer&#xff0c;linear层&#xff09;直接将视觉编码器中的视觉特征映射到冻结的LLMs中&#xff0c;通过利用保留的语言能力执行多模态任务。这种策略限制了…

Springboot整合Canal 实践经验

文章目录 前言一、Canal 服务端&#xff1a;1.1 canal.properties&#xff1a;1.2 canal的监听实例&#xff1a; 二、canal客户端2.1 客户端配置要监听的实例&#xff1a;2.2 通过连接获取信息 总结 前言 本文是Springboot整合Canal 实践过程中经验记录&#xff1b; 一、Canal…

Linux/Networked

Enumeration nmap 网站更新之后有了一个引导模式&#xff0c;更利于学习了&#xff0c;之前看ippsec的视频&#xff0c;要不总是没有思路&#xff0c;现在出现的问题多了提示也更多了&#xff0c;还没有使用&#xff0c;一会用用再说 首先&#xff0c;第一个问题是“目标上正…