牛客题13-好数
题目描述
若一个数的首位和末位相等,则定义这个数为“好数”。
例如:1231、4512394是好数,而12345、768740则不是好数。
请你编写一个函数,判断是不是好数。如果是好数则返回true,否则返回false。
示例1
输入
1231
返回值
true
说明
首位和末位都是1,相等。
笔者理解本题和回文数差不多,感觉比回文数还能简单一点,只需要比较头和尾的数字即可
①把整形转换成字符串,调用使用索引就可以知道首位字符和末尾字符时候一致,即是否为好数
public boolean judge (int x) {
// write code here
String s = x +"";
if(s.charAt(0) == s.charAt(s.length() - 1))
return true;
else
return false;
}
}
②利用循环取余等操作,找到整形数字的第一位数和最后一位数,判断是否相等
public boolean judge (int x) {
// write code here
int end = x % 10;
while( x > 9){//找到x的第一位数,当整除到只有一位时就是首位数字
x /= 10;
}
if(x == end)
return true;
else
return false;
}
}
③把整形数字转换成字符型数组,先转成字符串,再转成字符型数组,利用数组下标的方式查询首位和末位
public boolean judge (int x) {
// write code here
char [] a = (x + "").toCharArray();//先把整形转成字符串再转成字符型数组
if(a[0] == a[a.length - 1])
return true;
else
return false;
}
三种方法所用时间相差不大,个人比较喜欢第一种