Pintia题解——7-10 打印沙漏 柔光的暖阳◎ 2024-02-27 06:22 73阅读 0赞 #### 目录 #### * 7-10 打印沙漏 * * 原题: * 解题思路: * JavaScript(node)代码: * 复杂度分析: ## 7-10 打印沙漏 ## ### 原题: ### 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“\*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。 给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。 输入格式: 输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。 **输出格式:** 首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。 . ### 解题思路: ### 1. 引入`readline`模块并创建接口对象:首先将`readline`模块引入,并使用`createInterface`方法创建一个接口对象`rl`。该对象设置了输入流为标准输入。 2. 读取输入并存储:通过监听`'line'`事件,将每行输入存储在数组`buf`中。 3. 解析输入:通过`buf[0].split(" ")`分割第一行输入文本,得到菱形边长n和填充字符c。 4. 计算菱形变长:通过公式`m = Math.floor(Math.sqrt((parseInt(n) + 1) / 2))`计算出菱形边长的一半m。 5. 输出菱形图案:使用两个嵌套的循环遍历菱形区域的每个位置,使用判断条件判断当前位置是否应该填入字符c,并将结果存储在字符串`row`中。最后通过`console.log`方法输出菱形图案。 6. 输出数字:通过公式`parseInt(n) - 2 * m * m + 1`计算出应该输出的数字,并将其输出到控制台。 . ### 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 text = buf[0].split(" ") const n = text[0]; const c = text[1]; const m = Math.floor(Math.sqrt((parseInt(n) + 1) / 2)); for (let i = 0; i < 2 * m - 1; i++) { let row = ''; for (let j = 0; j < 2 * m - 1; j++) { if ((i > j && i + j < 2 * m - 2) || (i < j && i + j > 2 * m - 2)) { if (i > j && i + j < 2 * m - 2) { row += ' '; } } else { row += c; } } console.log(row); } console.log(parseInt(n) - 2 * m * m + 1); }); . ### 复杂度分析: ### ##### 时间复杂度:O(2n) ##### ##### 空间复杂度:O(n) #####
相关 Pintia题解——7-10 打印沙漏 目录 7-10 打印沙漏 原题: 解题思路: JavaScript(node)代码: 复杂度分析: 7-1 柔光的暖阳◎/ 2024年02月27日 06:22/ 0 赞/ 74 阅读
相关 打印沙漏 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“\”,要求按下列格式打印 所谓“沙漏形状”,是指每 Myth丶恋晨/ 2023年07月24日 05:49/ 0 赞/ 21 阅读
相关 打印沙漏 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“\”,要求按下列格式打印 所谓“沙漏形状”,是指每 末蓝、/ 2022年06月15日 08:27/ 0 赞/ 218 阅读
相关 打印沙漏 https://www.patest.cn/contests/gplt 天梯赛-练习赛 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“\”,要求按下列格式打 素颜马尾好姑娘i/ 2022年05月31日 14:52/ 0 赞/ 193 阅读
相关 1027. 打印沙漏(20) 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“\”,要求按下列格式打印 所谓“沙漏形状”,是指每 Bertha 。/ 2022年05月26日 05:47/ 0 赞/ 177 阅读
相关 作业1:打印沙漏 7-1 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“”,要求按下列格式打印 \\\\ \\\ --------- 不念不忘少年蓝@/ 2021年12月24日 15:43/ 0 赞/ 262 阅读
相关 PTA:打印沙漏 打印沙漏 (20 分) -------------------- 文章目录 打印沙漏 (20 分) 1. 题目描述 2. 输入格式 柔光的暖阳◎/ 2021年09月26日 15:26/ 0 赞/ 452 阅读
相关 java 打印沙漏 打印沙漏, 打印出如下形状 \\\\\\\ \\\\\ \\\ \ \\\ \\\\\ \\\\\\\ /第一种方法 墨蓝/ 2021年09月19日 22:18/ 0 赞/ 351 阅读
相关 1027.打印沙漏 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“\”,要求按下列格式打印 所谓“沙漏形状”,是指每 梦里梦外;/ 2021年09月12日 07:56/ 0 赞/ 354 阅读
还没有评论,来说两句吧...