Golang 打印数字的螺旋图案

Golang 打印数字的螺旋图案

在本教程中,我们将学习如何使用Go编程语言打印数字的螺旋图案。

螺旋图案数字用于在屏幕上以螺旋形式打印数字。在此程序中,我们将创建一个大小为n的数组,将数字存储在其中,并使用该数组以螺旋格式创建一个矩阵。

语法

for initialization; condition; update {
   statement(s)
}
func make([]T, len, cap) []T

make()函数用于为一些变量分配堆内存。例如,我们可以使用make()函数为一个数组分配内存。该函数接受三个参数,一个是数组的数据类型,另一个是数组的长度和容量。该函数返回最终的数组,我们可以将其存储在一个变量中。

示例:使用for循环打印数字的螺旋图案的Golang程序代码

步骤

  • 步骤1 - 导入fmt包

  • 步骤2 - 创建一个名为spiral()的函数,其中包含逻辑。

  • 步骤3 - 初始化变量left、right、top、bottom,并为它们赋值。

  • 步骤4 - 使用make()函数来附加一个整数数据类型的数组变量,并将结果数组存储在另一个变量中。确定数组的大小,并将其作为参数传递给数组变量。

  • 步骤5 - 使用for循环将所有变量以螺旋格式排列。

  • 步骤6 - 在螺旋中排列中心元素。

  • 步骤7 - 开始函数main()

  • 步骤8 - 初始化一个名为num的变量,长度并分配一个这么长的数组。

  • 步骤9 - 在循环中调用spiral()函数以打印图案。

  • 步骤10 - 退出程序。

示例

// GOLANG PROGRAM TO PRINT SPIRAL PATTERN OF NUMBERS USING FOR LOOPS.
package main

// fmt package have the required packages
import (
   "fmt"
)

// CREATE A SPIRAL FUNCTION WHICH RETURNS THE REQUIRED ARRAY
func spiral(n int) []int {

   // INITIALIZE THE REQUIRED VARIABLES
   left, top, right, bottom := 0, 0, n-1, n-1

   // Size of the matrix
   array_size := n * n
   spiral_array := make([]int, array_size)
   i := 0

   // USE FOR LOOP ON THE VARIABLES FOR PRINTING THE REQUIRED PATTERN
   for left < right {
      for c := left; c <= right; c++ {
         spiral_array[top*n+c] = i
         i++
      }
      top++
      for r := top; r <= bottom; r++ {
         spiral_array[r*n+right] = i
         i++
      }
      right--
      if top == bottom {
         break
      }
      for c := right; c >= left; c-- {
         spiral_array[bottom*n+c] = i
         i++
      }
      bottom--
      for r := bottom; r >= top; r-- {
         spiral_array[r*n+left] = i
         i++
      }
      left++
   }

   // center (last) element
   spiral_array[top*n+left] = i

   //RETURN THE ARRAY
   return spiral_array
}

// start the function main()
// This function is the entry point of the executable program
func main() {

   // THE VALUE TO BE PASSED IN THE spiral() Function
   num := 5
   len := 2
   fmt.Println("IT IS A SPIRAL PATTERN OF LENGTH ", num)

   //todraw the pattern use the for loop on spiral function
   for i, draw := range spiral(num) {
      fmt.Printf("%*d ", len, draw)
      if i%num == num-1 {
         fmt.Println("")
      }
   }
}

输出

IT IS A SPIRAL PATTERN OF LENGTH 5
0 1 2 3 4
15 16 17 18 5
14 23 24 19 6
13 22 21 20 7
12 11 10 9 8

代码描述

  • 在go语言程序中声明主包

  • 我们导入了包含fmt包的文件。fmt包允许我们在屏幕上打印任何内容。

  • 现在我们已经创建了spiral()函数,并初始化了变量。还使用数组的元素初始化了以螺旋格式打印的矩阵的大小。

  • 我们创建了一个数组,我们将使用for循环以螺旋格式打印其元素。

  • 使用for循环以螺旋格式打印数字。

  • spiral()函数返回一个数组。

  • 启动main()函数。从循环中调用spiral函数以打印存储在数组中的元素。

  • 最后使用fmt.Println()函数以螺旋模式打印数字的结果。

结论

我们成功编译并执行了一个go语言程序,在屏幕上打印了一个螺旋模式的数字。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程