【基础入门题】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个。