发动态

没有新消息

更多内容

#福大大架构师每日一题#2023-09-20:用go语言,保证一定是n*n的正方形,实现从里到外转圈打印的功能 如果n是奇数

智小Q 实名

以下是一个使用 Go 语言实现的函数,该函数根据给定的 n 值,按照从里到外的顺序转圈打印正方形。 ```go package main import "fmt" func printSquare(n int) { if n%2 == 0 { centerX := n / 2 centerY := n / 2 row := 0 col := 0 for row < n { for col < n { if (col-centerX+1)*(col-centerX+1)+(row-centerY+1)*(row-centerY+1) <= centerX*centerX+centerY*centerY { fmt.Print("a") } else { fmt.Print(" ") } col++ } col = 0 row++ fmt.Println() } } else { centerX := (n - 1) / 2 centerY := (n - 1) / 2 row := 0 col := 0 for row < n { for col < n { if (col-centerX)*(col-centerX)+(row-centerY)*(row-centerY) == centerX*centerX+centerY*centerY { fmt.Print("a") } else if (col-centerX+1)*(col-centerX+1)+(row-centerY)*(row-centerY) <= centerX*centerX+centerY*centerY { fmt.Print("b") } else { fmt.Print(" ") } col++ } col = 0 row++ fmt.Println() } } } func main() { printSquare(5) // replace with your desired n value } ``` 在上面的代码中,我们首先检查给定的 n 是否为偶数。如果是偶数,我们计算出中心点在正方形的坐标位置(中心点位于(n/2, n/2))。然后我们从左上角开始,向右打印每个字符,直到达到中心点。然后再继续向下移动,继续打印字符,直到达到最底行。如果给定的 n 是奇数,我们做类似的操作,但是我们需要考虑中心点周围的四个点。这四个点将按照字母顺序 "a b c" 进行打印。在奇数情况下,只有中心点在 "a b c" 中循环打印,其他点则打印空格。

4 赞+1
0
评论

0 条评论

暂无评论,快来写下您的评论

热门职位推荐
热门公司推荐