AOJ 2084 Hit and Blow

这是一道关于模拟猜数字游戏的编程题,挑战者需根据hit和blow的反馈,在限定次数内猜出秘密的四位数。题目要求分析在下两次尝试中是否能确定唯一解,或者找到最小的critical number。解决方案可以通过暴力枚举0123到9876来实现。
摘要由CSDN通过智能技术生成

非常有趣的模拟题, 题意是曾经很火的小游戏: 猜数字

首先出题人决定了一个秘密可带前导0的四位数, 然后每轮挑战者也提出一个可有前导0的四位数字, 就会得到一个结果 X hit Y blow

hit 表示数字对位置也对, blow表示数字对但位置不对

比如秘密数字为1579 挑战者提出2507 就会得到1 hit 1 blow的结果

现在给定一个猜测数次的结果, 询问挑战者能否依靠逻辑在下两次尝试中猜出正确答案

如果不能猜的正确答案, 输出????, 否则 如果只有唯一解, 输出答案, 如果不是唯一解, 输出最小的critical number, 关键数的定义如下:

critical numbers mean those such that, after being given the number of hits and blows for them on the next attempt, the codebreaker can determine the secret number uniquely.(意即为解出答案下一次需要尝试的数)

注意题意要求每位数字都不同

暴力0123至9876即可

具体解法可见代码>>>


/*author: birdstorm*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cctype>
#include <cstdlib>
#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值