package main
import "fmt"
func triangle(n int) {
var item []int
for i:=1;i<=n;i++ {
item_len:=len(item)
if item_len==0 {
item = append(item,1)
} else {
temp_s := []int{1}
for j:=0;j<item_len-1;j++ {
temp_s=append(temp_s,item[j]+item[j+1])
}
temp_s=append(temp_s,1)
item = temp_s
}
fmt.Println(item)
}
}
func main(){
triangle(13)
}
2144Go 语言数组
使用数组来打印杨辉三角
根据上一行的内容,来获取下一行的内容并打印出来。
package main
import "fmt"
func GetYangHuiTriangleNextLine(inArr []int) []int {
var out []int
var i int
arrLen := len(inArr)
out = append(out, 1)
if 0 == arrLen {
return out
}
for i = 0; i < arrLen-1; i++ {
out = append(out, inArr[i]+inArr[i+1])
}
out = append(out, 1)
return out
}
func main() {
nums := []int{}
var i int
for i = 0; i < 10; i++ {
nums = GetYangHuiTriangleNextLine(nums)
fmt.Println(nums)
}
}
package main
import "fmt"
func main(){
var a int = 0
fmt.Println("for start")
for a:=0; a < 10; a++ {
fmt.Println(a)
}
fmt.Println("for end")
fmt.Println(a)
}
输出为:
for start
0
1
2
3
4
5
6
7
8
9
for end
0
在 for 循环的 initialize(a:=0) 中,此时 initialize 中的 a 与外层的 a 不是同一个变量,initialize 中的 a 为 for 循环中的局部变量,因此在执行完 for 循环后,输出 a 的值仍然为 0。
package mainimport "fmt"func main(){ var a int = 0 fmt.Println("for start") for a = 0; a < 10; a++ { fmt.Println(a) } fmt.Println("for end") fmt.Println(a)}
输出为:
for start
0
1
2
3
4
5
6
7
8
9
for end
10
此时 initialize 中的 a 便于外层的 a 为同一个变量,因此在执行完 for 循环后,输出 a 的值为 10。
所以大伙们在使用 for 循环的时候千万要注意呀。。。
2142Go 语言变量作用域
形参使用,比较 sum 函数中的 a 和 main 函数中的 a,sum 函数中虽然加了 1,但是 main 中还是原值 10:
package main
import "fmt"
/* 声明全局变量 */
var a int = 20
func main() {
/* main 函数中声明局部变量 */
var a int = 10
var b int = 20
var c int = 0
fmt.Printf("main()函数中 a = %d\n", a)
c = sum(a, b)
fmt.Printf("main()函数中 a = %d\n", a)
fmt.Printf("main()函数中 c = %d\n", c)
}
/* 函数定义-两数相加 */
func sum(a, b int) int {
a = a + 1
fmt.Printf("sum() 函数中 a = %d\n", a)
fmt.Printf("sum() 函数中 b = %d\n", b)
return a + b
}
输出为:
main()函数中 a = 10
sum() 函数中 a = 11
sum() 函数中 b = 20
main()函数中 a = 10
main()函数中 c = 31
2141Go 语言函数
菱形
package main
import "fmt"
func main() {
// 长
x := 9
// 宽
y := 9
// 行数
row := 1
for row <= y {
// 计算每行得星星数
count := 0
if row <= (y/2 + 1) {
count = (2 * row - 1)
} else {
count = 2 * (y - row) + 1
}
row++
text := ""
// 算出显示星星的范围
star_min := ((x - count) / 2) + 1
star_max := ((x - count) / 2) + count
for index := 1;index <= x;index++ {
if index >= star_min && index <= star_max {
text += "*"
} else {
text += " "
}
}
fmt.Println(text)
}
}
2145Go 语言数组
我也来一个杨辉三角:
2144Go 语言数组
使用数组来打印杨辉三角
根据上一行的内容,来获取下一行的内容并打印出来。
输出结果为:
2143Go 语言变量作用域
输出为:
在 for 循环的 initialize(a:=0) 中,此时 initialize 中的 a 与外层的 a 不是同一个变量,initialize 中的 a 为 for 循环中的局部变量,因此在执行完 for 循环后,输出 a 的值仍然为 0。
package mainimport "fmt"func main(){ var a int = 0 fmt.Println("for start") for a = 0; a < 10; a++ { fmt.Println(a) } fmt.Println("for end") fmt.Println(a)}
输出为:
此时 initialize 中的 a 便于外层的 a 为同一个变量,因此在执行完 for 循环后,输出 a 的值为 10。
所以大伙们在使用 for 循环的时候千万要注意呀。。。
2142Go 语言变量作用域
形参使用,比较 sum 函数中的 a 和 main 函数中的 a,sum 函数中虽然加了 1,但是 main 中还是原值 10:
输出为:
2141Go 语言函数
菱形
计算结果: