Golang程序 来打印数字的螺旋形图案

Golang程序 来打印数字的螺旋形图案

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

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

语法

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

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

例子。Golang程序代码,使用for循环打印数字的螺旋模式

算法

  • 第1步 – 导入软件包 fmt

  • 第2步 – 创建一个名为spiral()的函数,包含逻辑。

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

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

  • 第5步 – 在所有的变量上使用for循环,将它们排列成螺旋状。

  • 第6步 – 在螺旋形中确定中心元素。

  • 第7步 – 启动函数main()

  • 第8步– 初始化一个名为num、length的变量,并分配一个这样长度的数组。

  • 第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 lang程序中声明包main

  • 我们导入了fmt包,该包包括fmt包的文件。fmt包允许我们在屏幕上打印任何东西。

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

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

  • 使用for循环来打印数字,以螺旋的形式。

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

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

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

总结

我们已经成功地编译并执行了一个go语言程序,在屏幕上打印一个螺旋形的数字图案。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程