【C语言】数学挑战(小Z和跳跳棋)

相信你是最棒哒!!!

文章目录

一、重礼仪的贪心小Z

题目代码

二、跳跳棋

题目代码:

总结


提示:以下是本篇文章正文内容,下面案例可仅供参考

一、重礼仪的贪心小Z

问题描述

小Z最近在研究一种倒酒礼仪“步步高升”,以满足自己的好奇心需要。

现在有 𝑛n 个酒杯,编号分别为 1 到 𝑛n,在小郑自研的倒酒礼仪“步步高升”中,酒杯中的酒是递增的,也就是第 𝑖+1i+1 杯酒必须要比第 𝑖i 杯酒多,且每个酒杯不能为空。

但小Z没有多余的酒,但可以将某个杯子中的酒导入其他杯子中,并且可以倒无数次。当然,小Z也可以喝掉任意酒杯中任意单位体积的酒,以满足倒酒礼仪“步步高升”的需要。

其中,每个杯子的容量可以视为无限大的,且转倒、喝掉的酒单位体积数都为整数。

小Z想要在遵循倒酒礼仪的前提下喝到最多的酒,你可以求出小Z最多能喝到多少单位体积的酒吗?

输入格式

第一行 1 个整数 𝑛n,代表酒杯数量。

第二行 𝑛n 个整数 𝑎1,𝑎2,𝑎3...,𝑎𝑛a1​,a2​,a3​...,an​,代表酒杯中已经装了的单位体积值。

输出格式

输出一行,输出最多能喝到多少单位体积的酒。如果无法做到“步步高升”的要求,输出 -1,数据保证答案唯一。

样例输入 1

2
3 2

样例输出 1

2

样例输入 2

3
1 1 1

样例输出 2

-1

对于所有测评数据 ,1≤n≤100, 1≤ai≤10  


题目代码

解析版:

#include<stdio.h> int main() 
{int n, a[1000], i, min, sum=0; // min为计算出的最小酒量总和,sum用于累加酒量scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]);min = 0.5 * n * (1+n); // 计算满足“步步高升”条件的最小酒量总和,即等差数列的和,首项为1,末项为nfor (i = 0; i < n; i++) // 循环累加所有酒杯中的酒量sum += a[i];if (sum < min) // 如果酒量的总和小于最小酒量总和,无法满足“步步高升”的要求printf("-1"); // 输出-1else // 否则printf("%d", sum - min); // 输出可以喝到的最多酒量,即总酒量减去最小酒量总和return 0; 

简洁版:

#include<stdio.h>
int main()
{int n, a[1000], i, min, sum=0;scanf("%d", &n);for (i = 0; i < n; i++)scanf("%d", &a[i]);min = 0.5 * n * (1+n);for (i = 0; i < n; i++)sum += a[i];if (sum < min)printf("-1");else printf("%d", sum - min);return 0;
}


二、跳跳棋

问题描述

  • 游戏棋盘是一个7x7的矩阵。
  • 棋子(1)只能跳过相邻的棋子到空位(0)上,并且吃掉被跳过的棋子。
  • 判断游戏是否结束,即无法再进行合法的跳棋操作。

输入格式

  • 输入数据占7行,每行代表棋盘的一行。
  • 每个位置上的数字为1或0,1表示有棋子,0表示没有。

输出格式

  • 如果游戏无法进行下去,输出"yes"。
  • 否则,输出"no"。

样例输入

000
001
0000001
0000000
0000101
000
000

样例输出 

yes

题目代码:

解析版:

#include<stdio.h>// 定义一个10x10的字符数组来存储棋盘状态,'1' 表示有棋子,'0' 表示没有棋子(定义成7×7的容易越界)
char a[10][10];int main() {int f = 0; // 用于标记是否存在可跳的棋子,初始为0,表示没有(flag)//1. 读取第1行和第2行数据for (int i = 1; i <= 2; i++) {for (int j = 3; j <= 5; j++) {scanf("%c", &a[i][j]);}getchar(); // 吸收换行符}   // 读取棋盘的第4行到第6行数据,实际是第3行到第5行数据for (int i = 3; i <= 5; i++) {for (int j = 1; j <= 7; j++) {scanf("%c", &a[i][j]);}getchar(); // 同样读取并丢弃换行符}// 读取棋盘的第7行和第8行数据,实际是第6行和第7行数据for (int i = 6; i <= 7; i++) {for (int j = 3; j <= 5; j++) {scanf("%c", &a[i][j]);}getchar(); // 读取并丢弃换行符}// 2. 遍历棋盘,检查是否有可跳的棋子for (int i = 1; i <= 7; i++) {for (int j = 1; j <= 7; j++) {if (a[i][j] == '1') { // 如果当前位置有棋子// 检查上下左右四个方向是否有可跳的棋子if (a[i - 1][j] == '1' && a[i - 2][j] == '0') {f = 1; // 如果可以跳,标记为1(如果有时间限制可以在每一个后面加上break;)}if (a[i + 1][j] == '1' && a[i + 2][j] == '0') {f = 1;}if (a[i][j - 1] == '1' && a[i][j - 2] == '0') {f = 1;}if (a[i][j + 1] == '1' && a[i][j + 2] == '0') {f = 1;}}}}// 根据标记判断游戏是否结束if (f == 0) {printf("yes"); // 如果没有可跳的棋子,输出"yes"} else {printf("no"); // 否则输出"no"}return 0; // 程序结束
}

简洁版:

#include<stdio.h>
char a[10][10];int main()
{int f = 0;for (int i = 1; i <= 2; i++){for (int j = 3; j <= 5; j++){scanf("%c", &a[i][j]);}getchar();}for (int i = 3; i <= 5; i++){for (int j = 1; j <= 7; j++){scanf("%c", &a[i][j]);}getchar();}for (int i = 6; i <= 7; i++){for (int j = 3; j <= 5; j++){scanf("%c", &a[i][j]);}getchar();}for (int i = 1; i <= 7; i++){for (int j = 1; j <= 7; j++){if (a[i][j] == '1'){if (a[i - 1][j] == '1' && a[i - 2][j] == '0'){f = 1;}if (a[i + 1][j] == '1' && a[i + 2][j] == '0'){f = 1;}if (a[i][j - 1] == '1' && a[i][j - 2] == '0'){f = 1;}if (a[i][j + 1] == '1' && a[i][j + 2] == '0'){f = 1;}}}}if (f == 0){printf("yes");}else{printf("no");}return 0;
}

二维数组中,外层循环表示行,内层循环表示列

这段代码首先定义了一个10x10的字符数组来存储棋盘状态,然后通过循环读取用户输入的棋盘数据。接着,它遍历棋盘,检查每个棋子是否有可跳的路径。如果找到可跳的棋子,就将标记f设置为1。最后,根据f的值判断游戏是否结束,并输出相应的结果。


总结

两个蓝桥题目,重礼仪的小Z 和 跳跳棋

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

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

相关文章

qt QPrinter详解

1、概述 QPrinter类是Qt框架中用于打印输出的绘图设备。它表示打印出来的一系列页面&#xff0c;并提供了一组附加功能来管理特定于设备的特性&#xff0c;比如方向和分辨率。QPrinter可以生成PDF文档&#xff0c;也可以将内容发送到打印机进行实际打印。它继承自QPagedPaintD…

FPGA实战篇(按键控制LDE实验)

1.按键简介 按键开关是一种电子开关&#xff0c;属于电子元器件类。我们的开发板上有两种按键开关&#xff1a;第一种是本实验所使用的轻触式按键开关&#xff0c;简称轻触开关。使用时以向开关的操作方向施加压力使内部电路闭合接通&#xff0c;当撤销压力时开关断开&#xff…

2023年华数杯数学建模B题不透明制品最优配色方案设计解题全过程文档及程序

2023年华数杯全国大学生数学建模 B题 不透明制品最优配色方案设计 原题再现&#xff1a; 日常生活中五彩缤纷的不透明有色制品是由着色剂染色而成。因此&#xff0c;不透明制品的配色对其外观美观度和市场竞争力起着重要作用。然而&#xff0c;传统的人工配色存在一定的局限性…

PortSwigger 原型污染

一、什么是原型污染 原型污染是一种 JavaScript 漏洞&#xff0c;它使攻击者能够向全局对象原型添加任意属性&#xff0c;然后这些属性可能被用户定义的对象继承。 二、JavaScript 原型和继承基础 1、原型 JavaScript 中的每个对象都链接到某种类型的另一个对象&#xff0c;称…

威联通-004 安装photoview相册应用Docker镜像

文章目录 前言准备MariaDB 10phpMyAdminphotoview 安装步骤1.安装MariaDB 10和phpMyAdmin2.初始安装MariaDB 103.进入phpMyAdmin添加账户4.手动下载photoview的Docker库注意&#xff1a;安装 phpMyAdmin 报错5.配置photoview6.容器安装成功之后进入photoview注意&#xff1a;这…

ScratchLLMStepByStep:一步一步构建大语言模型教程

前言 在学习大语言模型的时候&#xff0c;总会遇到各种各样的名词&#xff0c;像自注意力、多头、因果、自回归、掩码、残差连接、归一化等等。这些名词会让学习者听的云里雾里&#xff0c;觉得门槛太高而放弃。 本教程将会带你从零开始&#xff0c;一步一步的去构建每一个组…

6.824/6.5840 Lab 1: MapReduce

宁静的夏天 天空中繁星点点 心里头有些思念 思念着你的脸 ——宁夏 完整代码见&#xff1a; https://github.com/SnowLegend-star/6.824 由于这个lab整体难度实在不小&#xff0c;故考虑再三还是决定留下代码仅供参考 6.824的强度早有耳闻&#xff0c;我终于也是到了挑战这座高…

学习threejs,使用CubeCamera相机创建反光效果

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️CubeCamera 立方体相机 二、…

变点问题的公式推导

背景与关键定义 变点检测问题 变点检测的目标是在给定的观测序列 y 1 , y 2 , … , y T y_1, y_2, \dots, y_T y1​,y2​,…,yT​ 中&#xff0c;找到一个或多个点&#xff08;变点&#xff09;&#xff0c;使得每段子序列&#xff08;即变点划分的区间&#xff09;能被一个较…

解决github网络慢的问题

前言 本文采用替换host的方式来加速github的git请求&#xff0c;主要我自己用来备份的懒人方式&#xff0c;不然每次都要手动修改hosts文件&#xff0c;skrskrskr… 一、获取到可用的ip 先到这个网站查询到低延迟的ip 站长工具&#xff1a;https://ping.chinaz.com/ 第2步&…

vue3【实战】多页签【组件封装】PageTabs (含右键快捷菜单组件封装 Contextmenu -- 关闭其他页签,关闭所有页签)

效果预览 技术方案 vue3 ( vite | TS | vueUse | AutoImport | pinia) Element Plus UnoCSS 技术要点 需开启 pinia 持久化右键菜单组件借助了 Element Plus 的样式 代码实现 src/components/PageTabs.vue <script setup lang"ts"> import { usePageTabsSto…

全面解析 Transformer:改变深度学习格局的神经网络架构

目录 一、什么是 Transformer&#xff1f; 二、Transformer 的结构解析 1. 编码器&#xff08;Encoder&#xff09; 2. 解码器&#xff08;Decoder&#xff09; 3. Transformer 模型结构图 三、核心技术&#xff1a;注意力机制与多头注意力 1. 注意力机制 2. 多头注意力&…

容器运行应用及Docker命令

文章目录 一、使用容器运行Nginx应用1_使用docker run命令运行Nginx应用1 观察下载容器镜像过程2 观察容器运行情况 2_访问容器中运行的Nginx服务1 确认容器IP地址2 容器网络说明3 使用curl命令访问 二、Docker命令1_Docker命令获取帮助方法2_Docker官网提供的命令说明3_docker…

【热门主题】000075 探索嵌入式硬件设计的奥秘

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【热…

数据分析(一): 掌握STDF 掌握金钥匙-码农切入半导体的捷径

中国的半导体行业必然崛起&#xff01;看清这个大势&#xff0c;就会有很多机会。 今天&#xff0c;我们一起来了解一下半导体行业的一朵金花&#xff1a;STDF。 实际上这只是一种文件格式&#xff0c;但是当你熟练掌握解析这种文件的时候&#xff0c;你就已经打开在这个基础…

Latex转word(docx)或者说PDF转word 一个相对靠谱的方式

0. 前言 投文章过程中总会有各种各样的要求&#xff0c;其中提供word格式的手稿往往是令我头疼的一件事。尤其在多公式的文章中&#xff0c;其中公式转换是一个头疼的地方&#xff0c;还有很多图表&#xff0c;格式等等&#xff0c;想想就让人头疼欲裂。实践中摸索出一条相对靠…

AWS创建ec2实例并连接成功

aws创建ec2实例并连接 aws创建ec2并连接 1.ec2创建前准备 首先创建一个VPC隔离云资源并且有公有子网 2.创建EC2实例 1.启动新实例或者创建实例 2.创建实例名 3.选择AMI使用linux(HVM) 4.选择实例类型 5.创建密钥对下载到本地并填入密钥对名称 6.选择自己创建的VPC和公有子网…

“放弃Redis Desktop Manager使用Redis Insight”:日常使用教程(Redis可视化工具)

文章目录 更新Redis Insight连接页面基础解释自动更新key汉化暂时没有找到方法&#xff0c; Redis Desktop Manager在连接上右键在数据库上右键在key上右键1、添加连接2、key过期时间 参考文章 更新 (TωT)&#xff89;~~~ β&#xff59;ё β&#xff59;ё~ 现在在维护另一…

如何用注册机破解Reflexive游戏

相信有许多小朋友&#xff08;像我以前一样&#xff09;已经迫不及待地准备准备对浩瀚的、像三星堆一般的Reflexive游戏合集进行考古挖掘工作了。不巧的是&#xff0c;打开游戏之后发现常常提示要付费才能解锁完整版。 一、下载注册机与破解文件 首先&#xff0c;在我的永硕网…

一万台服务器用saltstack还是ansible?

一万台服务器用saltstack还是ansible? 选择使用 SaltStack 还是 Ansible 来管理一万台服务器&#xff0c;取决于几个关键因素&#xff0c;如性能、扩展性、易用性、配置管理需求和团队的熟悉度。以下是两者的对比分析&#xff0c;帮助你做出决策&#xff1a; SaltStack&…