练习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()
	}
}

执行结果:

1554981569329

如果将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()
	}
}

执行结果:

1554981981812

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)
		}
	}
}
posted @ 2019-04-12 12:04  Ambition-LC  阅读(289)  评论(0编辑  收藏  举报