前言

有100瓶酒,其中有一瓶是毒酒,最少用多少只老鼠,能找出这瓶毒酒


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

代码如下(示例):

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><style>.mouse {width: 10%;height: auto;margin: 10px;cursor: pointer;filter: grayscale(0);transition: all .3s ease;}.choose {filter: grayscale(1);transition: all .3s ease;}.fat_group {width: 100%;display: grid;grid-template-columns: repeat(10, 1fr);}.fat {width: 100%;height: auto;transition: all .3s ease;}.confirm_btn {width: 120px;padding: 10px 0;border: none;outline: none;background-color: #ff313f;border-radius: 10px;color: #fff;}</style>
</head>
<body><div class="check_group"></div><button onclick="confirm()" class="confirm_btn">确定</button><div class="fat_group"></div><script>let total = 100;//设置一共有100桶酒let length = getN(total);//获取老鼠数量let convertArr = new Array(length).fill([]);let confirmArr = [];init();function init() {const wrap = document.querySelector('.check_group');const fragFat = document.createDocumentFragment();const fat = document.querySelector('.fat_group');for (let i = 1; i <= total; i++) {convert(i);let img = document.createElement('img');img.src = './fat.png';img.className = 'fat';fragFat.appendChild(img);}fat.appendChild(fragFat);const frag = document.createDocumentFragment();for (let j = 1; j <= length; j++) {let img = document.createElement('img');img.src = './mouse.png';img.className = 'mouse';img.onclick = function () {document.querySelector('.fat.choose') && document.querySelector('.fat.choose').classList.remove('choose');if (confirmArr.includes(j)) {confirmArr.splice(confirmArr.indexOf(j), 1);img.classList.remove('choose');} else {confirmArr.push(j);img.classList.add('choose');}}frag.appendChild(img);}wrap.appendChild(frag);}/*** 递归求N=2的几次幂*/function getN(num, index = 0) {if (num > 1) {index++;return getN(num / 2, index);} else {return index;}}/*** 递归将十进制数字转为二进制,并保存相关数据*/function convert(num, str = '', index = 0, numArr = []) {if (num > 0) {index++;let n = Math.floor(num / 2);let j = num % 2;j && numArr.push(index);str = j + str;return convert(n, str, index, numArr);} else {str = str.padStart(length, '0');numArr.forEach(s => {let arr = convertArr[s - 1];arr = arr.concat([str]);convertArr[s - 1] = arr;})return str;}}/*** 获取毒酒编号*/function getStr(dieArr) {let arr = new Array(length).fill('0');dieArr.forEach(s => {arr[length - s] = '1';});return arr.join('');}/*** 二进制转十进制*/function getNumber(str) {return parseInt(str, 2)}/*** 选中小白鼠,得出对应的毒酒*/function confirm() {let num = getNumber(getStr(confirmArr));document.getElementsByClassName('fat')[num - 1].classList.add('choose');confirmArr = [];let imgs = document.getElementsByClassName('mouse');for (let i = 0; i < imgs.length; i++) {if (imgs[i].classList.contains('choose')) {imgs[i].classList.remove('choose');}}}</script>
</body>
</html>



模拟100只老鼠试毒题目,根据酒桶数量生成对应的老鼠数量,选中老鼠,找出对应的毒酒相关推荐

  1. 一千瓶酒有一瓶酒有毒药,问你最少用多少只老鼠可以找出那瓶毒酒? 老鼠毒发的时间在两小时内,要求在两个小时内找出毒酒。

    题目: 一千瓶酒有一瓶酒有毒药,问你最少用多少只老鼠可以找出那瓶毒酒? 老鼠毒发的时间在两小时内,要求在两个小时内找出毒酒. public class Demo03 { public static v ...

  2. “1000瓶药水,其中至多有1瓶剧毒,小狗服完药20小时后才能判断是否中毒。现在给你10只小狗、在24小时内、通过小狗试药的方式找出哪瓶药有毒或者全部无毒”

    题目: 1000瓶药水,其中至多有1瓶剧毒,小狗服完药20小时后才能判断是否中毒. 现在给你10只小狗.在24小时内.通过小狗试药的方式找出哪瓶药有毒或者全部无毒 思路: 一."小狗服完药2 ...

  3. python编写函数、给定任意字符串_编写函数,给定任意字符串,找出其中只出现一次的字符,如果有多个这样的字符,就全部找出。...

    [简答题]编写程序,实现分段函数计算,如下表所示. x y x<0 0 0<=x<5 x 5<=x<10 3x-5 10<=x<20 0.5x-2 20< ...

  4. 有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠.

    有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠. 很老的笔试题了. 答案是10只. 把十只老鼠看成二进制的位数,把酒桶 ...

  5. 二进制老鼠毒药c语言,趣味算法:老鼠试毒瓶问题

    大家应该都听说过这个老题目:有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药.任何喝下毒药的生物都会在一星期之后死亡.现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪 ...

  6. python123百钱买百鸡_求解百钱买百鸡问题。假设大鸡 5 元一只,中鸡 3 元一只,小鸡 1 元三只,现有 100 元钱想买 100 只鸡,有多少种买法?截图代码和运行结果_学小易找答案...

    [填空题]表达式 'apple.peach,banana,pear'.find('ppp') 的值为 ________ . [填空题]已知 x = '123' 和 y = '456' ,那么表达式 x ...

  7. 算法:挑选出100瓶药水中有且仅有1瓶毒药水所需的最少老鼠数量?

    挑选出100瓶药水中有且仅有1瓶毒药水所需的最少老鼠数量? 问题描述 100 瓶水其中有一瓶有毒,用老鼠试毒老鼠试后 7 天会死掉,需要多少只老鼠才能试出哪瓶水有毒? 题目解析 第一步:编码 给这 1 ...

  8. 兔子试毒 #算法学习

    每日一题 Day1 兔子试毒 #每日一题 Day2 排序算法-插入排序 #每日一题 Day3 排序算法 #每日一题 Day1 题目引入 兔纸试毒 网络答案思路 设计题目 开始解题 实验准备 实验算法 ...

  9. 1000瓶药中找出一瓶毒药,10只老鼠做试验

    题目如下:现有1000瓶药,其中有一瓶毒药,喝了之后1小时后才产生效果,现在你有10只老鼠和1个小时的时间,请问怎么找出毒药? 题解:这道题明显就是只能一开始就把所有药都喂给10只老鼠,1小时后就直接 ...

最新文章

  1. ----uni-app之用canvas同时画多张海报实现分享----
  2. Codeforces Round #709 (Div. 2, based on Technocup 2021 Final Round) 题解
  3. 2017-2018-1 Java演绎法 第三周 作业
  4. C#回顾 - 3.NET的IO:字节流
  5. 34 CO配置-控制-产品成本控制-成本对象控制-期末结算-检查差异变式
  6. Python列表:list
  7. java.lang.NumberFormatException: Infinite or NaN原因之浮点类型除数为0
  8. Python中用户管理(用户的登陆、用户的增删改查)
  9. Kotlin入门(12)类的概貌与构造
  10. UVA213 UVALive5152 Message Decoding
  11. idea中异常处理快捷键
  12. [源码和文档分享]基于汇编语言实现打字练习软件
  13. nfc加密卡pm3和pm5区别_为了省门禁卡的钱,买了NFC读卡器,到底值不值
  14. 太阳能逐日自动跟踪系统,太阳能光伏追光追日发电实训系统
  15. JavaScript随机方块
  16. iPhone手机ipa破解补丁安装方法和ipa软件游戏安装教程(1)
  17. Curl学习日记3 - 在Linux命令行中使用Curl
  18. JS+CSS防FLASH效果竖向可折叠的滑动菜单
  19. OpenCV图象孔洞内轮廓填充
  20. 宽窄巷子,最成都?1038

热门文章

  1. PHP:Maze迷宫寻址算法(附完整源码)
  2. Ext2explore查看ext2/ext3/ext4 file
  3. 之江汇空间如何加音乐背景_之江汇互动课堂使用方法
  4. 广州市天河区2021-2022学年八年级第一学期期末考试英语试题
  5. Linux之shell脚本循环语句for while until
  6. 备战第十二届蓝桥杯电子类《EDA设计与开发》国赛
  7. 新浪微博的页面解析思考
  8. web网页设计—— 指环王:护戒使者(13页) 电影网页设计 在线电影制作 个人设计web前端大作业
  9. 开源技术可以解决贸易战?Richard Stallman 给微软的十条公开建议等;开源之道每周评论(2019 10 08))...
  10. Blazor University (47)依赖注入 —— Singleton 依赖