前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【第25题】一道面试题,一起来推导吧!

【第25题】一道面试题,一起来推导吧!

作者头像
小码匠
发布2023-08-31 14:20:29
1400
发布2023-08-31 14:20:29
举报
文章被收录于专栏:小码匠和老码农

碎碎念

题目来源于老码农的同事,据说是一道面试题,老码农顺手就拿来考我。

啥时候都惦记我,这可不是好事啊。。。

题目

编写一个程序解决以下问题。找出满足以下条件的所有三位数(即000-999):

列出符合条件的所有数字。要求给出代码和最终答案。

  • 和三位数246相比,有且仅有1个号码正确,且位置正确。
  • 和三位数692相比,有且仅有2个号码正确,但位置都不正确。
  • 和三位数174相比,没有一个号码正确。
  • 和三位数419相比,有且仅有1个号码正确,但位置不正确。

题解

思路
  • 简单点说,这题靠逻辑推理是可以找到所有可能性然后打表的
    • 在0, 1, 2, 3, ,4, 5, 6, 7, 8, 9中,1, 2, 4,6,7, 9是已经被排除的数值,
    • 由条件1得知,2, 4, 6三数不能同时共存,在联立条件3可知,4一定不存在于答案中,所以这个数中要么含有2,要么含有6
    • 由于2, 6不能共存,所以9一定存在于最终答案里,而当正确的时2, 9时,这个数应该是2x9形式的数,因为9的位置是不正确的,可2的位置由条件1可以得到,同理得正确的数为6, 9时,这个数应该为形式如9x6的数(x为未确定的数)
    • 由条件3可排除1,4,7存在于正确答案
    • 由条件4并联立条件3可知,这个正确的值一定为9,因为1,4均不存在于正确答案中,而9的位置又不正确,所以可排除所有为2x9形式的数
    • 最后只需要排除所有不可能的数,然后填进9x6形式的数中x的位置即可
  • 综上所述,答案为906,936,956,986
AC代码
  • 代码没有写,上面的思路是整个推理的过程,我也不确定是否有遗漏的,感兴趣的一起做做吧!
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小码匠和老码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 碎碎念
  • 题目
  • 题解
    • 思路
      • AC代码
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档