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语言程序,在屏幕上打印一个螺旋形的数字图案。