【基础入门题】Golang 001. 统计7的倍数或包含7的数字
求100以内的正整数是7的倍数或包含7的数字并统计总个数。
思路:判断是否7的倍数非常容易,所以主要看数字是否包含7。
方法一:取得各位上的数字,只要有一个是7即满足条件
package main import "fmt" func Contain7(number int) bool { result := false for i, j := 0, 1; i < 3; i++ { //100以内,只要循环3只 if number/j%10 == 7 { result = true break } j *= 10 } return result } func main() { number := 1 count := 0 for number <= 100 { if number%7 == 0 || Contain7(number) { fmt.Print(number) if count%5 == 4 { fmt.Println() } else { fmt.Print("\t") } count++ } number++ } fmt.Printf("\n满足条件的数共有%d个。", count) }
方法二:转成字符串看是否包括“7”,需要用到strings.Contains()和strconv.Itoa()。
package main import ( "fmt" "strconv" "strings" ) func main() { number := 1 count := 0 for number <= 100 { if number%7 == 0 || strings.Contains(strconv.Itoa(number), "7") { fmt.Print(number) if count%5 == 4 { fmt.Println() } else { fmt.Print("\t") } count++ } number++ } fmt.Printf("\n满足条件的数共有%d个。", count) }
执行结果:
7 14 17 21 27
28 35 37 42 47
49 56 57 63 67
70 71 72 73 74
75 76 77 78 79
84 87 91 97 98
满足条件的数共有30个。