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

L1-044 稳赢(15分)

题目信息

项目内容
题目编号L1-044
题目名称稳赢
分数15分
作者陈越
单位浙江大学

题目描述

大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如下:

  • 锤子(ChuiZi) 赢 剪刀(JianDao)
  • 剪刀(JianDao) 赢 布(Bu)
  • 布(Bu) 赢 锤子(ChuiZi)

现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。


解题思路

本题需要模拟"锤子剪刀布"游戏,并按照规则输出稳赢的招式,同时每隔K次输出一个平局。

核心逻辑:

  1. 建立手势之间的胜负关系映射
  2. 维护当前计数器和平局间隔K
  3. 当计数器达到K时,输出平局(即与对方相同的手势),并重置计数器
  4. 否则输出稳赢的手势(克制对方的手势)

克制关系:

  • 对方出锤子 → 我出布(布赢锤子)
  • 对方出剪刀 → 我出锤子(锤子赢剪刀)
  • 对方出布 → 我出剪刀(剪刀赢布)

Java实现

import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int K = scanner.nextInt(); // 平局间隔次数 // 记录已经输出的次数(不含平局) int count = 0; while (scanner.hasNext()) { String input = scanner.next(); if (input.equals("End")) { break; } count++; if (count % (K + 1) == 0) { // 平局:输出与对方相同的手势 System.out.println(input); } else { // 输出稳赢的手势 System.out.println(getWinGesture(input)); } } scanner.close(); } // 获取克制对方手势的稳赢手势 private static String getWinGesture(String opponent) { switch (opponent) { case "ChuiZi": return "Bu"; // 布赢锤子 case "JianDao": return "ChuiZi"; // 锤子赢剪刀 case "Bu": return "JianDao"; // 剪刀赢布 default: return ""; } } }

Python实现

def main(): K = int(input()) # 平局间隔次数 count = 0 # 手势克制关系:对方手势 -> 稳赢手势 win_map = { 'ChuiZi': 'Bu', # 布赢锤子 'JianDao': 'ChuiZi', # 锤子赢剪刀 'Bu': 'JianDao' # 剪刀赢布 } while True: gesture = input() if gesture == 'End': break count += 1 if count % (K + 1) == 0: # 平局:输出与对方相同的手势 print(gesture) else: # 输出稳赢的手势 print(win_map[gesture]) if __name__ == '__main__': main()

运行验证

输入:

2 ChuiZi JianDao Bu JianDao Bu ChuiZi ChuiZi End

Java输出:

Bu ChuiZi Bu JianDao JianDao ChuiZi Bu

Python输出:

Bu ChuiZi Bu JianDao JianDao ChuiZi Bu

复杂度分析

  • 时间复杂度:O(N),其中N为输入的出招次数
  • 空间复杂度:O(1),只使用常数级别的额外空间

总结

本题是一道简单的模拟题,关键点在于:

  1. 正确理解克制关系并建立映射
  2. 理解每隔K次平局的规则(即每K+1次输出一次平局)
  3. 边界情况处理:平局时输出与对方相同的手势
http://www.jsqmd.com/news/642712/

相关文章:

  • RTA-OS Alarm配置避坑指南:从绝对/相对时间到自启动,这些细节别踩雷
  • FanControl完全指南:告别风扇噪音,5分钟打造完美静音电脑
  • Kylin-Desktop-V10-SP1-海光版(Hygon C86)安装与配置全指南
  • 5月19日起Roblox更新游戏发布要求,创作者反响不一!
  • 从云端到边缘:拆解Capsule Update如何成为现代设备(IoT/服务器)固件管理的基石
  • 2025年终极指南:R3nzSkin国服特供版——一键解锁LOL全皮肤的完整解决方案
  • 手把手教你用Qwen3.5-2B:免费商用、一键部署,打造个人AI助手
  • 表格布局中的Flexbox应用
  • 多线程——面试中一个常考内容(13)
  • celery-redis异步任务具体应用
  • **存算一体编程新范式:用 Rust 实现高效数据流驱动的计算模型**在传统冯·诺依曼架构中,CP
  • 如何快速掌握WandEnhancer使用:面向新手的完整免费增强指南
  • linux内核 - 常用的性能分析命令
  • 以爱毕业aibiye为代表的七家专业论文辅导团队,通过优质的在线指导在国内学术服务领域脱颖而出
  • AMD Ryzen系统调试利器:SMUDebugTool实战指南
  • 基因表达预测的“权力游戏”:当转录组与表观基因组争夺控制权
  • Phi-3-mini-gguf实战:解决Web开发中常见的403 Forbidden错误
  • 智慧交通项目实战:从0到1构建一个雨天车辆行人检测系统(附VOC/YOLO格式数据集及完整代码)
  • SEPIC拓扑设计实战:从元件参数计算到PCB布局的完整指南
  • Ubuntu动态库路径管理全攻略:从LD_LIBRARY_PATH到ldconfig实战
  • # Linux服务Day04: 一站式DNS入门(原理+单域+多域+Web实战+分离解析)
  • 基于Qwen3.5-9B-AWQ-4bit的SpringBoot微服务智能开发全流程
  • 简历敢写“精通RAG“? 阿里一面挂了! 这3个夺命连环问,你能扛住几个?
  • 爱毕业aibiye及其他六家专业辅导团队,凭借高效的在线服务在国内论文指导市场占据重要地位
  • [CI/CD] 排障实录:内网环境下 Jenkins + ArgoCD 流水线搭建
  • RVC语音转换效果展示:AI歌手专辑制作全流程实录分享
  • 5分钟搞定PaddleOCR的Docker部署(附常见报错解决方案)
  • 微信直连Claude Code,多账号也能用
  • Ostrakon-VL 扫描终端 Python 入门实战:3 步实现图像数据自动化处理
  • 终极指南:如何使用Python实现百度网盘直链解析与高速下载