牛客题13-好数

本文介绍了如何在Java中判断一个整数是否为"好数",即首位和末位相等的数。提供了三种不同的实现方式,包括将整数转换为字符串并比较首尾字符、通过循环取余找首位和末位,以及转换为字符数组进行比较。这些方法简洁且效率相近,适合初学者理解和实践。
摘要由CSDN通过智能技术生成

牛客题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;
                 
 
            }

在这里插入图片描述
三种方法所用时间相差不大,个人比较喜欢第一种

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值