Golang程序 打印左三角星形图案

Golang程序 打印左三角星形图案

在本教程中,我们将编写一个Go-lang代码来打印一个左三角星形图案。我们将描述如何用Go语言打印星形图案。

   *
  * *
 * * *
* * * *

如何打印星形图案?

上图是一个左边三角形的星星图案,在这个图案中,你可以看到星星是随着行数的增加而增加的。这个图案是这样的:第一行有1颗星,第二行有2颗星,一直这样下去。

我们将在这里使用2个for循环,第一个for循环将用于打印空格,第二个for循环将在相应的地方打印*字符。

For loop:
for [condition | ( init; condition; increment) | Range] { 
   statement(s); 
}

例1:使用For Loop打印左角星形图案的Golang程序

算法

  • 第1步 – 导入软件包fmt。

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

  • 第3步 – 声明并初始化整数变量,(row=要打印的行数)。

  • 第4步 – 使用第一个内循环,从1到 “行数 “遍历行。

  • 第5步 – 使用第二个内层for循环,从1到i迭代列,打印一个星形图案。

  • 第5步– 用外层for循环来计算行数。

  • 第5步– 在打印完一行的所有列后移到下一行,即打印新的一行。

例子

//GOLANG PROGRAM TO PRINT LEFT ANGLED STAR PATTERN
package main

// fmt package provides the function to print anything
import "fmt"

// this is the main function
func main() {

   //declaring variables with integer datatype
   var i, j, k, row int

   // assigning the row variable with the value of number of rows
   row = 5

   // Print the pattern
   fmt.Println("\nLeft Angled Star Pattern")

   // displaying the pattern using for loops
   for i = 0; i <= row; i++ {

      //printing the spaces
      for j = 0; j < row-i; j++ {
         fmt.Print(" ")
      }
      //printing the stars
      for k = 0; k < i; k++ {
         fmt.Print("*")
      }
      // printing new line
      fmt.Println()
   }
}

输出

Left Angled Star Pattern 

    *   
   ** 
  *** 
 **** 
*****

代码的描述

  • 在上面的代码中,首先我们导入main包和fmt包,fmt包允许我们在屏幕上打印任何东西。

  • 然后启动 main() 函数。

  • 声明并初始化数据类型为int的i、j、k和行变量。

  • 让我们把行数定为5,即为了这个例子,让我们打印一个有5行的星形图案。

  • I、j和k被用来在for循环中迭代。它们将选择各自的行和列来打印*字符。

  • 为了打印这种图案,我们需要在另一个for循环中使用一个for循环。第一个for循环用于选择行,它从1到行变量所包含的行数进行遍历。

  • 第二个for循环从j = 0开始到当前行的值-1。

  • 第三个for循环用于打印*字符。

  • 使用 fmt.Print() 函数来打印第三个for循环中的*字符。

  • 然后打印一个新行。

  • 通过这种方式,左边的三角形图案将被打印出来。

例2:使用递归打印左角星图案的Golang程序

算法

  • 第1步– 导入软件包fmt

  • 第2步 – 定义一个 printSpace() 函数。

  • 第3步 – 定义一个 Star() 函数。

  • 第4步- -定义一个 pattern( )函数。

  • 第5步- -启动 main() 函数。

  • 第6步– 声明并初始化整数变量。

  • 第7步–调用 pattern( )函数。

例子

// GOLANG PROGRAM TO PRINT LEFT ANGLED STAR PATTERN USING RECURSION
package main

// fmt package provides the function to print anything
import "fmt"

// defining printSpace() function
func printSpace(number int) {

   // defining base condition
   if number == 0 {
      return
   }

   // printing the spaces
   fmt.Printf(" ")

   // calling the printSpace() function recusrsively
   printSpace(number - 1)
}
func star(number int) {
   // defining base condition
   if number == 0 {
      return
   }

   // printing the * character
   fmt.Printf("*")

   // calling the star() function recursively
   star(number - 1)
}
func pattern(number, n int) {
   // defining base case
   if number == 0 {
      return
   }

   // calling the printSpace() function to print spaces
   printSpace(number - 1)

   // calling the star function to print * patterns
   star((n - number) + 1)

   // printing new line
   fmt.Println()

   // calling the pattern() function recursively
   pattern(number-1, n)
}
// calling the main function
func main() {

   // declaring variable row
   var row int = 7

   // calling the star() function
   pattern(row, row)
}

输出

      * 
     ** 
    *** 
   **** 
  ***** 
 ****** 
******* 

代码的描述

  • 在上面的代码中,首先我们导入main包和fmt包,fmt包允许我们在屏幕上打印任何东西。

  • 创建三个函数,命名为 printSpace()star()pattern()。

  • printSpace() 函数将递归地打印选定行数中的空格。

  • Star() 函数将递归地打印各自行中的*字符。

  • 第三个 函数pattern( )将开始逐一调用每个函数,并打印新行。

  • 然后启动 main() 函数。

  • 初始化数据类型为int的行变量,并将你想在星形图案中打印的行数存储在其中。

  • 调用 pattern() 函数并将行变量作为参数传给它。

总结

我们已经成功地编译并执行了一个Go语言程序来打印一个左角星形图案。

为了打印这个星形图案,我们使用了递归,即递归地调用三个函数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程