Pintia题解——7-27 猜帽子游戏 女爷i 2024-02-26 07:46 83阅读 0赞 #### 目录 #### * 7-27 猜帽子游戏 * * 原题: * 解题思路: * JavaScript(node)代码: * 复杂度分析: ## 7-27 猜帽子游戏 ## ### 原题: ### 宝宝们在一起玩一个猜帽子游戏。每人头上被扣了一顶帽子,有的是黑色的,有的是黄色的。每个人可以看到别人头上的帽子,但是看不到自己的。游戏开始后,每个人可以猜自己头上的帽子是什么颜色,或者可以弃权不猜。如果没有一个人猜错、并且至少有一个人猜对了,那么所有的宝宝共同获得一个大奖。如果所有人都不猜,或者只要有一个人猜错了,所有宝宝就都没有奖。 下面顺序给出一排帽子的颜色,假设每一群宝宝来玩的时候,都是按照这个顺序发帽子的。然后给出每一群宝宝们猜的结果,请你判断他们能不能得大奖。 **输入格式:** 输入首先在一行中给出一个正整数 *N*(2<*N*≤100),是帽子的个数。第二行给出 *N* 顶帽子的颜色,数字 `1` 表示黑色,`2` 表示黄色。 再下面给出一个正整数 *K*(≤10),随后 *K* 行,每行给出一群宝宝们猜的结果,除了仍然用数字 `1` 表示黑色、`2` 表示黄色之外,`0` 表示这个宝宝弃权不猜。 同一行中的数字用空格分隔。 **输出格式:** 对于每一群玩游戏的宝宝,如果他们能获得大奖,就在一行中输出 `Da Jiang!!!`,否则输出 `Ai Ya`。 . ### 解题思路: ### 1. 引入`readline`模块并创建接口对象:首先将`readline`模块引入,并使用`createInterface`方法创建一个接口对象`rl`。该对象设置了输入流为标准输入。 2. 读取输入并存储:通过监听`'line'`事件,将输入存储在数组`buf`中。 3. 解构赋值得到正确答案和学生答案:将第二个元素(即正确答案数组)使用`split`方法按空格拆分,并使用`map`方法将每个元素转换为数字存储在变量`ans`中;将第四个元素及之后的元素(即学生答案数组)存储在变量`text`中,此时`text`是一个字符串数组。 4. 遍历学生答案数组:使用`for...of`循环遍历`text`的每一个元素`temp`。 5. 判断学生答案数组是否与正确答案数组完全相同:使用两个变量`flag`和`k`,其中`flag`初始值为`true`,`k`表示学生答案数组中0元素的个数。使用内层循环遍历`temp`的每一个元素`temp[j]`,如果`temp[j]`为0,则将`k`加1;否则,如果`temp[j]`与`ans[j]`相等,则继续循环;否则,将`flag`置为`false`。 6. 根据判断结果输出:如果`k`等于`temp.length`,说明学生答案数组全是0,则输出"Ai Ya";否则,如果`flag`为`true`,说明学生答案数组与正确答案数组完全相同,则输出"Da Jiang!!!“;否则输出"Ai Ya”。 7. 循环结束后输出结果:使用`console.log`输出每个学生答案数组的判断结果。 . ### JavaScript(node)代码: ### const r = require("readline"); const rl = r.createInterface({ input: process.stdin }); let buf = []; rl.on('line', (input) => buf.push(input)); rl.on('close', () => { let ans = buf[1].split(" ").map(Number); let text = buf.slice(3); for (let i = 0; i < text.length; i++) { let temp = text[i].split(" ").map(Number); let flag = true; let k = 0; for (let j = 0; j < temp.length; j++) { if (temp[j] == 0) { k++; } else if (temp[j] == ans[j]) { continue; } else { flag = false } } if (k == temp.length) { console.log("Ai Ya"); } else { console.log(flag ? "Da Jiang!!!" : "Ai Ya"); } } }); . ### 复杂度分析: ### ##### 时间复杂度:O(n\*m) ##### ##### 空间复杂度:O(n) #####
相关 Pintia题解——7-9编程团体赛 目录 7-9 编程团体赛 原题: 解题思路: JavaScript(node)代码: 复杂度分析: 7-9 忘是亡心i/ 2024年02月27日 05:40/ 0 赞/ 128 阅读
相关 Pintia题解——7-8古风排版 目录 7-8 古风排版 原题: 解题思路: JavaScript(node)代码: 复杂度分析: 7-8 骑猪看日落/ 2024年02月27日 05:39/ 0 赞/ 73 阅读
相关 Pintia题解——7-27 猜帽子游戏 目录 7-27 猜帽子游戏 原题: 解题思路: JavaScript(node)代码: 复杂度分析: 7- 女爷i/ 2024年02月26日 07:46/ 0 赞/ 84 阅读
相关 Pintia题解——7-24 剪切粘贴 目录 7-24 剪切粘贴 原题: 解题思路: JavaScript(node)代码: 复杂度分析: 7-2 今天药忘吃喽~/ 2024年02月26日 07:45/ 0 赞/ 54 阅读
相关 Pintia题解—— 7-21 试试手气 目录 7-21 试试手气 原题: 解题思路: JavaScript(node)代码: 复杂度分析: 7-2 谁借莪1个温暖的怀抱¢/ 2024年02月26日 07:43/ 0 赞/ 64 阅读
相关 Pintia题解——7-12 彩虹瓶 目录 7-12 彩虹瓶 原题: 解题思路: JavaScript(node)代码: 复杂度分析: 7-12 你的名字/ 2024年02月26日 07:40/ 0 赞/ 69 阅读
相关 Pintia题解——7-26进化论 目录 7-26 进化论 原题: 解题思路: JavaScript(node)代码: 复杂度分析: 7-26 刺骨的言语ヽ痛彻心扉/ 2023年10月16日 14:12/ 0 赞/ 66 阅读
相关 Pintia题解——7-7出租 目录 7-7 出租 原题: 解题思路: JavaScript(node)代码: 复杂度分析: 7-7 出租 喜欢ヅ旅行/ 2023年10月15日 23:59/ 0 赞/ 68 阅读
相关 Pintia题解——7-20 拯救外星人 目录 7-20 拯救外星人 原题: 解题思路: JavaScript(node)代码: 复杂度分析: 7- 忘是亡心i/ 2023年10月15日 17:28/ 0 赞/ 72 阅读
相关 猜数游戏 一个小小的程序,找点乐趣。。哈哈 目前我觉得能最快的找出数字的方法是二分法。。。 代码: \include <stdio.h> \include <stdlib.h> 男娘i/ 2022年06月15日 03:42/ 0 赞/ 252 阅读
还没有评论,来说两句吧...