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