练习1(字符串逆序打印、9*9乘法表、打印素数)
1、将字符串"hello"逆序打印出来。实现结果"olleh"
方法1:
代码示例如下:
package main
import "fmt"
func main() {
s1 := "hello"
byteArray := []byte(s1) //转化为字节数组进行操作 [h e l l o]
s2 := "" //定义一个空字符串进行接收
for i := len(byteArray) - 1; i >= 0; i-- {
// i 是 4 3 2 1 0
// byteArray[i] o l l e h (字符)
s2 = s2 + string(byteArray[i])
}
fmt.Println(s2)
}
方法2:
代码示例如下:
package main
import (
"fmt"
)
func main() {
s1 := "hello"
byteArray := []byte(s1) // [h e l l o]
length := len(byteArray)
for i := 0; i < length/2; i++ {
byteArray[i], byteArray[length-1-i] = byteArray[length-1-i], byteArray[i]
}
fmt.Println(string(byteArray))
}
2、9*9乘法表
代码示例如下:
package main
import "fmt"
//打印9*9乘法表
func main() {
for i := 1; i < 10; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d*%d=%d\t", j, i, i*j)
}
//换行
fmt.Println()
}
}
执行结果:
如果将9*9乘法表反过来打印呢,该如何做呢?
代码示例如下:
package main
import "fmt"
//反着打印9*9乘法表
func main() {
for i := 1; i < 10; i++ {
for j := i; j < 10; j++ {
fmt.Printf("%d*%d=%d\t", j, i, i*j)
}
//换行
fmt.Println()
}
}
执行结果:
3、打印200到1000的素数(质数)
什么是素数呢?
答:除了1和它本身外不能再被其他数整除的为素数
代码示例:
package main
import "fmt"
//打印200-1000之间的素数
func main() {
for i := 200; i < 1000; i++ {
flag := true
//判断i是否为质数,如果是就打印,如果不是就不打印
for j := 2; j < i; j++ {
if i%j == 0 {
flag = false
break
}
}
//判断i是否为质数,如果是就打印,如果不是就不打印
if flag {
fmt.Printf("%d是质数\n", i)
}
}
}