📌  相关文章
📜  圆形打印机hackerrank解决方案 - Javascript(1)

📅  最后修改于: 2023-12-03 14:50:49.829000             🧑  作者: Mango

圆形打印机Hackerrank解决方案 - Javascript

简介

圆形打印机是一个Hackerrank上的问题,它要求你写一个Javascript函数,用于输出一个半径为n的圆形。圆形必须由“.”和“”字符组成,其中“.”表示圆形外部的空白,而“”表示圆形内部的填充。

题目描述

函数原型为:function circlePrinter(n);

你的函数需要输出一个n x n的字符串,其中包含了一个半径为n的圆形。如下:

circlePrinter(5);

..***..
.*****.
****...
.*****.
..***..
解决方案

圆形打印机的解决方案其实比较简单。我们可以先创建一个n x n的空字符串数组,然后根据圆的半径,将对应的位置上的元素设为"*",其余的设为"."即可。实现代码如下:

function circlePrinter(n) {
  let circle = [];
  let center = Math.floor(n / 2);

  // 创建空的n x n字符串数组
  for (let i = 0; i < n; i++) {
    circle.push(Array(n).fill("."));
  }

  // 根据圆形半径,在数组中填充"*"
  for (let i = 0; i < n; i++) {
    for (let j = 0; j < n; j++) {
      if (Math.pow(i - center, 2) + Math.pow(j - center, 2) <= Math.pow(center, 2)) {
        circle[i][j] = "*";
      }
    }
  }

  // 拼接字符串并输出
  let result = circle.map(row => row.join("")).join("\n");
  console.log(result);
}
使用方法

调用circlePrinter(n)函数,其中n是一个正整数,它表示圆的半径。调用示例:

circlePrinter(5);

运行后,会输出一个半径为5的圆形字符串。你可以将它存储在变量中,或者直接将它输出到控制台上:

..***..
.*****.
****...
.*****.
..***..
总结

圆形打印机是一个经典的编程问题,通过它,我们可以练习字符串操作、数组操作、循环结构、条件语句等多种编程知识。这个问题实现起来并不困难,但是需要一定的编程基础。希望本篇文章能够对你掌握圆形打印机有所帮助!