题解 | 自守数
自守数
https://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e
package main import ( "fmt" "strconv" "strings" ) func main() { var n int fmt.Scan(&n) // 能成为自守数的,末尾应该是1,5,6,因为只有这三个数的平方末尾是相等的 var count int for i := 0; i <= n; i++ { if i == 0 { count++ } if i % 10 == 1 || i % 10 == 5 || i % 10 == 6 { tmp1 := strconv.Itoa(i) tmp2 := strconv.Itoa(i*i) if strings.HasSuffix(tmp2, tmp1) { count++ } } } fmt.Printf("%d", count) }
能成为自守数的,末尾应该是1,5,6,因为只有这三个数的平方末尾是与这个数字相等的,然后直接转化为字符串比较后缀