猜数游戏 rust解法

2023-10-27

给定答案序列和猜测序列,统计有几个数字位置正确,有几个数字在两个序列都出现过但位置不对。
输入包含多组数据。每组第一行是序列长度n,第二行是答案序列,接下来若干行是猜测序列。猜测序列全0时该组结束。n=0时整个输入结束。
样例输入:
4
1 3 5 5
1 1 2 3
4 3 3 5
6 5 5 1
6 1 3 5
1 3 5 5
0 0 0 0
10
1 2 2 2 4 5 6 6 6 9
1 2 3 4 5 6 7 8 9 1
1 1 2 2 3 3 4 4 5 5
1 2 1 3 1 5 1 6 1 9
1 2 2 5 5 5 6 6 6 7
0 0 0 0 0 0 0 0 0 0
0
样例输出:
Game 1:
(1,1)
(2,0)
(1,2)
(1,2)
(4,0)
Game 2:
(2,4)
(3,2)
(5,0)
(7,0)

解法:

use std::io;
fn main() {
    let mut gamecnt = 0;
    loop {
        let mut buf = String::new();
        io::stdin().read_line(&mut buf).unwrap();
        let l: usize = buf.trim().parse().unwrap();
        if l == 0 {
            break;
        }
        gamecnt += 1;
        println!("Game {}:", gamecnt);
        let mut buf = String::new();
        io::stdin().read_line(&mut buf).unwrap();
        let ans: Vec<i32> = buf.split_whitespace().map(|x| x.parse().unwrap()).collect();
        loop {
            let mut buf = String::new();
            io::stdin().read_line(&mut buf).unwrap();
            let guess: Vec<i32> = buf.split_whitespace().map(|x| x.parse().unwrap()).collect();
            if guess[0] == 0 {
                break;
            }
            let mut cnt = 0;
            for i in 0..ans.len() {
                if ans[i] == guess[i] {
                    cnt += 1;
                }
            }
            let mut bcnt = 0;
            for i in 1..=9 {
                let mut c1 = 0;
                let mut c2 = 0;
                for j in 0..ans.len() {
                    if ans[j] == i {
                        c1 += 1;
                    }
                    if guess[j] == i {
                        c2 += 1;
                    }
                }
                bcnt += c1.min(c2);
            }
            println!("({},{})", cnt, bcnt - cnt);
        }
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

猜数游戏 rust解法 的相关文章

随机推荐

  • (阿里云)使用WordPress搭建一个专属自己的博客

    一 创建资源 在页面左侧 单击 云产品资源 下拉列表 查看本次实验所需资源 单击屏幕右侧 创建资源 免费创建当前实验所需云产品资源 说明 资源创建过程需要1 3分钟 完成实验资源的创建后 您可以在 云产品资源 列表查看已创建的资源信息 例如
  • 浅析ARM公司在物联网领域的战略布局

    原文地址 http blog csdn net yefanqiu article details 17006331 随着ARM芯片的出货量越来越多 自信满满的ARM公司统一软硬件平台的战略和雄心壮志越来越凸显 最初ARM公司仅是出售自己的知
  • 解决VMware出现“磁盘实用工具不可用”

    可能有人想用vmware的磁盘映射 但是磁盘映射按钮是灰色的 按钮上面还有一行字 磁盘实用工具不可用 我也遇到过这个问题 上网查了一下 结果网上愣是没有一篇博客说明了这个问题 我想 难道这些人从来没遇到过吗 后来 经过自己的实验 我发现了解
  • 一次serialVersionUID引发的血案

    背景 去掉了两个bean类中重写的equals方法 该equals方法只判断id 相同则true 否则false 看了看没有什么地方用到了这个equals 就直接去掉了 测试环境出现异常 org springframework core c
  • sklearn机器学习——day07

    无监督学习 聚类 分类 聚类算法又叫做 无监督分类 其目的是将数据划分成有意义或有用的组 或簇 sklearn当中的聚类算法 有两种表现形式 类 函数 KMeans是如何工作的 重要参数n clusters n clusters是KMean
  • MySQL高级之SQL优化

    福利 网络安全重磅福利 入门 进阶全套282G学习资源包免费分享 https mp weixin qq com s BWb9OzaB gVGVpkm161PMw 5 SQL优化 5 1 大批量插入数据 环境准备 CREATE TABLE t
  • 【Centos】centos7 NFS共享目录(单机版)

    环境介绍 centos 7 三台机器 服务端 192 168 30 13 提供共享目录 客户端 192 168 30 14 192 168 30 15 挂载使用服务端共享路径 此方案为测试环境单机部署方案 服务端一旦挂了就不可用了 生产环境
  • Windows Server 2016-Windows 时间服务概览

    同步 Windows 时间服务 W32Time 的日期和时间的所有运行 Active Directory 域服务 AD DS 的计算机 时间同步至关重要的许多 Windows 服务和的业务线 LOB 应用正常运行 Windows 时间服务使
  • 获取请求地址路径参数

    package gacl request study import java io IOException import java io PrintWriter import javax servlet ServletException i
  • 华为OD机试 - 非严格递增连续数字序列(Java)

    题目描述 输入一个字符串仅包含大小写字母和数字 求字符串中包含的最长的非严格递增连续数字序列的长度 比如12234属于非严格递增连续数字序列 输入描述 输入一个字符串仅包含大小写字母和数字 输入的字符串最大不超过255个字符 输出描述 最长
  • CleanMyMac X 4.13.4许可证激活码2023最新免费版

    小伙伴们 你们好 今天兔八哥爱分享来聊聊cleanmymac X如何激活 关于cleanmymac的基本情况说明介绍的文章 网友们对这件事情都比较关注 那么现在就为大家来简单介绍下 希望对各位小伙伴们有所帮助 在不断更新的版本中 Clean
  • 论文p5解释 Bootstrap开关电路

    M7 M3这种箭头指回去的是P型 这是开关电路 也叫Bootstrap开关电路 所以分析的时候不用考虑是耗尽型或者增强型 只考虑高低电平打开和关闭开关 1 Clks是高电平时 详细分析图如下 最终目的是Cs上极板接到Vdd 下极板接地 于是
  • 如何用Python进行大数据挖掘和分析

    互联网创业离不开数据 如果能自己做个数据爬虫 那岂不是一件很美好的事情吗 其实自己做数据挖掘不是梦 学点Python的基本功能 5步就能让你成为一个爬虫高手
  • 影响力六大原则讲解

    文章目录 写在前面 互惠原则 承诺一致原则 社会认同 喜好 权威 稀缺 写在前面 人虽然是万物之灵 但还是有很多类似动物的本能 受很多其他因素的影响很多时候就像膝跳反射一样本能的发生着 影响着我们做的一个选择 正所谓 一言不合就XX 我们这
  • 【CSDN铁粉】CSDN铁粉增长终极奥义之如何快速破千铁粉

    文章目录 写在前面 涉及知识 1 铁粉是个啥 2 铁粉如何增长 1 持续的优质创作 2 与粉丝周期互动 3 参加活动与比赛 3 铁粉对您的意义 总结 写在前面 其实我也是下午去看那个6月份的城市获奖的名单时候 无意的去看了一下CSDN官方博
  • QuotaExceededError The quota has been exceeded

    一 前言 我首先描述下 这种报错出现的场景 ios lt 10 真机 Safari 的无痕浏览模式 使用localStorage or sessionStorage 的 setItem 当然 问题肯定社区有解决方案 以下链接可以满足你想要的
  • 2019第十届蓝桥杯【c++省赛B组】第九题

    第九题 后缀表达式 标题 后缀表达式 时间限制 1 0s 内存限制 256 0MB 本题总分 25 分 时间限制 1 0s 内存限制 256 0MB 本题总分 25 分 问题描述 给定 N 个加号 M 个减号以及 N M 1 个整数 A 1
  • STM32 CAN通信协议详解—小白入门(二)

    文章目录 一 CAN通信协议简介 二 CAN物理层 2 1 闭环总线网络 2 2 开环总线网络 2 3 通信节点 2 4 差分信号 2 5 CAN协议的差分信号 三 协议层 3 1 CAN的波特率及位同步 3 2 位时序分解 3 3 通讯的
  • Stm32学习笔记,3万字超详细

    Stm32学习笔记 文章目录 Stm32学习笔记 前言的前言 前言 笔记 Stm32 三种开发方式的区别 为什么Stm32初始化外设都需要先打开时钟 GPIO八种模式 Stm32寄存器映射 Stm32中的位段映射 Stm32中的时钟系统 S
  • 猜数游戏 rust解法

    给定答案序列和猜测序列 统计有几个数字位置正确 有几个数字在两个序列都出现过但位置不对 输入包含多组数据 每组第一行是序列长度n 第二行是答案序列 接下来若干行是猜测序列 猜测序列全0时该组结束 n 0时整个输入结束 样例输入 4 1 3