Go语言程序打印螺旋数字图案
在本教程中,我们将学习如何使用Go编程语言打印螺旋数字图案。
螺旋数字图案用于在屏幕上以螺旋形打印数字。在这个程序中,我们将创建一个大小为n的数组,将数字存储在其中,并使用该数组以螺旋格式创建矩阵。
语法
for initialization; condition; update { statement(s) } func make([]T, len, cap) []T
make() 函数用于为某些变量分配堆内存。例如,我们可以使用 make() 函数为数组分配内存。此函数接受三个参数:数组的数据类型、数组的长度和容量。此函数返回最终数组,我们可以将其存储在变量中。
示例:使用for循环打印螺旋数字图案的Go语言程序代码
算法
步骤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语言程序中声明包main
我们导入了包含fmt包文件的fmt包。fmt包允许我们在屏幕上打印任何内容。
现在我们创建了spiral()函数,并初始化了变量,还使用数组元素初始化了要以螺旋格式打印的矩阵大小。
我们创建了一个数组,我们将使用for循环以螺旋格式打印其元素。
使用for循环以螺旋格式打印数字。
spiral()函数返回一个数组。
启动main()函数。从循环调用spiral函数以打印存储在数组中的元素。
最后,使用fmt.Println()函数以螺旋数字图案的形式打印结果。
结论
我们已成功编译并执行了一个Go语言程序,用于在屏幕上打印螺旋数字图案。