用java判断一个数是不是回文数!

哈喽大家好,这里是Java小白成长记!

昨天分享了怎么来判断一个数字的奇偶性,其中用到了if选择语句和求余运算,虽然都不是很难的知识点,但是也不可能分享一次就不管了,所以今天继续分享一个和它俩有关的代码:如何判断一个五位数是不是回文数。

首先了解一下回文数是什么:回文数是指一个数字从前往后读和从后往前读结果是一样的。比如:2、66、151、2332、85658等等,只要正着念和反着念是一样的,都是回文数。因此回文数是在太多了,今天就只写一个判断五位数是不是回文数的代码。

思路:首先还是先把规律找好,既然要写五位数的代码,先用一个五位数来举例子:12321。因为我们不可能在java中说什么正着读和反着读,要把这句话换成数学的语言,也就是个位等于万位,十位等于千位,只有这两个条件同时满足,这个数才是回文数。下面的问题就是如何分别得到万位、千位、十位、个位的数字了。

首先说万位,想到万位的数字,直接用这个数除以一万,得到的就是万位了,可能有人好奇除完以后的小数呢?这里就有一个小的知识点了,我们如果定义了一个整数,这个整数运算完还是整数,小数部分会直接舍去,而且并不会4舍5入。举个例子:

定义一个整数i初始值为5,输出i/2的值,我们都知道答案是2.5,看一下结果:

结果只是2,小数部分直接舍去了,而且也没有四舍五入。因此万位直接除以一万就行了。

再来看个位:个位就要用到求余数了,把这个数对10求余数,得到的就是个位了。比如用21对10求余数,是不是商2余1。

最后就是十位与千位:这两个要把上面的结合一下,十位要先把这个数除以10,让十位变为个位,再对10求余数。比如21怎么得到数字2,先用21/10=2,2再对10求余数,商0余2。千分位是同样的道理,先把这个数除以1000再对10求余数。

每个数字都得到了,现在就要让万位与个位、十位与千位同时相等,这里就要用到逻辑运算符了,&&或者||。

&表示逻辑与,|表示逻辑或,!表示逻辑非,&&是短路与,两边同时为真才为真,||是短路或,一边为假就为假。

代码:

第8行:首先提示用户输入一个五位数,第九行用变量n来存放这个数字。

第10行:为了防止用户输错,用来一个if选择语句,因为五位数最大是99999,最小是10000,所以这里用来一个短路或“||”,如果输入的数字大于99999或者小于10000,就会告诉用户输入不正确。

第13行:如果输入的是五位数就会执行这行代码,又是一个if选择语句,如果万位等于个位同时千位等于十位,括号里整体才为true,也就表示这个数是回文数,接着输出信息就行了;如果两个条件有一个不满足,括号里整体结果就为false,就表示这个数不是回文数,就执行else后面的语句了。

看一下运行结果:

可以看到,我们想实现的功能全部实现了,代码没有任何问题。

今天的分享就结束了,有任何问题欢迎评论或私信。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200514A0MQRQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券