回文数字
作者:
韩小禹 | 来源:发表于
2020-03-14 22:55 被阅读0次package main
import "fmt"
//回文数字:数字从左往右和从右往左必须一致,否则不满足回文规则
//声明一个变量reverseNumber并赋予初始值0,用于存放得到的反转数字。
//将原始数字 %10 会得到数字的最后一个数,然后将reverseNumber*10 + 得到的反转数字
//将原始数字 /10 然后将
//循环判断,x > reverseNumber时说明没有得到原始数字长度的一半,当x<=reverseNumber时说明反转数字的长度已经达到原始数字的一半。
//得到原始数字的一半时判断x是否等于reverseNumber,或者x是否等于reverseNumber/10
func IsPalindrome(x int) bool {
// 如果 x <= 0 ,说明不是回文数
// 如果 x % 10 = 0,说明x的最后一个数字是0,要满足回文的要求那么第一个数字就必须是0,所有再次判断x != 0
if x < 0 || (x%10 == 0 && x != 0) {
return false
}
//用于记录回文数字
reverseNumber := 0
for x > reverseNumber {
// x % 10 是为了得到x的最后一位数字
reverseNumber = reverseNumber*10 + x%10
//每循环一次将x/10,当x不大于reverseNubmer的时候,说明从后往前得到了原始数字的一半
x /= 10
}
//两位数时,x == reverseNumber
//三位数时,x == reverseNumber/10
return x == reverseNumber || x == reverseNumber/10
}
func main() {
//n := 1220
n := 1221
fmt.Println(IsPalindrome(n))
}
本文标题:回文数字
本文链接:https://www.haomeiwen.com/subject/pczoshtx.html
网友评论