能解决题目的代码并不是一次就可以写好的

我们需要根据我们的思路写出后通过debug模式找到不足再进行更改

多次测试后才可得到能解决题目的代码!

通过学习,练习【Java基础经典练习题】,让我们一起来培养这种解决问题思路。

一、视频讲解

二、思路分析

Q1: 什么是回文数?

A1: 如:12321,

即将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样。

【正着读是12321,反着读也是12321】

对于5位数的回文数来说就是【个位和万位相同】,【十位和千位相同】 所以可以根据这个条件来判断一个数是否为回文数

Q2:怎样获取一个五位数的每一位?

A2: 第四题我们已经对这个问题具体讲解过了~

点击下面的链接就可以看到第四题。

这里小乔就给大家复习一下获取一个数的每一位的规律:

先用输入的正整数num与10取余,

再将输入的正整数num与10相除,得到的结果仍保存在num中

即num=num/10

我们可以看到:

最后一次循环被除数为1,此时每一位都已被取出。所以被除数大于0

12321%10=1(个位) 12321/10=1232

1232%10=2(十位) 1232/10=123

123%10=3(百位)123/10=12

12%10=2(千位)12/10=1

1%10=1(万位)1/10=0

三、代码+详解+结果

代码:

package Exercise;

import java.util.Scanner;

public class HuiWen {

public static void main(String[] args) {

int num, num1 = 0;

int i = 0;

int yu = 0;// 将取出的每一位数保存在变量yu中

Scanner sc = new Scanner(System.in);

System.out.println("请输入一个五位数");

num = sc.nextInt();// 将键盘输入的数存入变量num中

int arr[] = new int[5];// 因为输入的是5位数,所以数组长度为5

num1 = num;// 把num的值赋给num1

/*

* 思路:输入的正整数num与10取余, 再将输入的正整数num与10相除, 相除后的结果仍保存在num中,即num=num/10

*/

while (num1 > 0 && i < arr.length) {// 用num1的值做判断,num在下面输出语句中使用。

yu = num1 % 10;// 取出的每一位保存在变量yu中

arr[i] = yu;// 将yu的值赋给arr[i]

num1 = num1 / 10;// 为取出下一位数做准备

i++;// 数组的索引i需要+1,如果不+1那么原来放入的数就会被新放入的数代替,即循环过后只有arr[0]是有值的

}

if (arr[0] == arr[4] && arr[1] == arr[3]) {// 如果个位和万位相等并且十位和千位相等(两个条件都要满足),此数为回文数

System.out.println(num + "是回文数");// 如果此处写的是num1,输出的就是0。并不是我们通过键盘输入的数

} else {// 否则,就不是回文数

System.out.println(num + "不是回文数");

}

}

}

详解:

以键盘输入12321为例:

num=12321,num1=num=12321(用num1>0&&i

i=0 (数组arr的下标,因为arr.length=5,所以arr的下标范围【0-4】)

yu=0(将取出的每一位数保存在变量yu中)

创建一个数组arr ,长度为5,因为我们输入的是5位数

int arr[] = new int[5];

接下来进入while循环

while (num1 > 0 && i < arr.length) {// 用num1的值做判断,num在下面输出语句中使用。

yu = num1 % 10;// 取出的每一位保存在变量yu中

arr[i] = yu;// 将yu的值赋给arr[i]

num1 = num1 / 10;// 为取出下一位数做准备

i++;// 数组的索引i需要+1,如果不+1那么原来放入的数就会被新放入的数代替,即循环过后只有arr[0]是有值的

}

(1) num1=12321,i=0 满足num1 > 0 && i < arr.length,进入while循环

yu=12321%10=1

arr[0]=yu=1

num1=12321/10=1232

i ++,i=1

(2) num1=1232,i=1 满足num1 > 0 && i < arr.length,进入while循环

yu=1232%10=2

arr[1]=yu=2

num1=1232/10=123

i++,i=2

(3) num1=123,i=2 满足num1 > 0 && i < arr.length,进入while循环

yu=123%10=3

arr[2]=yu=3

num1=123/10=12

i++,i=3

(4) num1=12,i=3 满足num1 > 0 && i < arr.length,进入while循环

yu=12%10=2

arr[3]=yu=2

num1=12/10=1

i++,i=4

(5) num1=1,i=4满足num1 > 0 && i < arr.length,进入while循环

yu=1%10=1

arr[4]=yu=1

num1=1/10=0

i++,i=5

(6) num=0,i=5不满足num1 > 0 && i < arr.length,退出while循环

进入if条件分支语句

if (arr[0] == arr[4] && arr[1] == arr[3]) {// 如果个位和万位相等并且十位和千位相等(两个条件都要满足),此数为回文数

System.out.println(num + "是回文数");// 如果此处写的是num1,输出的就是0。并不是我们通过键盘输入的数

} else {// 否则,就不是回文数

System.out.println(num+ "不是回文数");

}

(1)因为此处arr[0]arr[4]&&arr[1]arr[3]成立

(2)所以输出12321是回文数

注意:此处要用num输出。如果此处写的是num1,输出的就是0。

结果:

四、彩蛋

欢迎大家来公号

“小乔的编程内容分享站” 来找小乔玩~

一起学习Java基础+算法~

还有更多资源等你来拿哦~

java判断五位数回文数_【视频+图文】Java经典基础练习题(五):键盘输入一个五位数,判断这个数是否为回文数...相关推荐

  1. c语言从键盘输入一个整数判断是否为素数,键盘输入一个正整数,程式设计判断其是否为素数(即质数)...

    键盘输入一个正整数,程式设计判断其是否为素数(即质数)以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 键盘输入一个正整数 ...

  2. C语言 编写程序:由键盘输入一个字符判断是字母数字还是其他符号。

    c语言程序题 编写程序:由键盘输入一个字符判断是字母数字还是其他符号. #include<stdio.h> void main() {char a;scanf("%c" ...

  3. 练习5 键盘输入一个年份 判断年份 是否为闰年

    公历年份是整百或整千的(也就是年份末尾至少有2个0的),用年份除以400,如果能整除,就是闰年,不能整除就是平年, 公历其他的年份,用年份除以4,如果能整除,就是闰年,不能整除就是平年, 如1900年 ...

  4. python输入一个三位数、输出它的逆序数值_c语言 从键盘输入一个三位数,输出该数的逆序数。c语言中从键盘输入一个三位整数...

    c语言 从键盘输入一个三位数,输出该数的逆序数. c语言中从键盘输入一个三位整数 www.zhiqu.org     时间: 2020-12-08 c语言中从键盘输入一个三位数,输出该数的逆序数,可以 ...

  5. java判断键盘按键按下_JAVA 从键盘输入一个字符串 判断其是否能被转换为一个有效的数字,字符串可以按位取出...

    用了你说的方法写的 public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = n ...

  6. 编写一个Java应用程序。用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223

    编写一个Java应用程序.用户从键盘输入一个1-99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数.回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121.3223 ...

  7. 设n是一个任意自然数,如果n的各位数字反向排列所得的自然数与n相等,则n称为回文数。从键盘输入一个5位数字,请编写程序判断这个数字是不是回文数

    设n是一个任意自然数,如果n的各位数字反向排列所得的自然数与n相等,则n称为回文数.从键盘输入一个5位数字,请编写程序判断这个数字是不是回文数 nume=input('请输入一个数字:') nume1 ...

  8. 设n是一任意自然数,如果n的各位数字反向排列所得的自然数与n相等,则n被称为回文数。 从键盘输入一个5为数字,请编写程序判断这个数字是不是回文数。

    列表的切片,切片用于获得列表的一个片段,即获得零个或多个元素.切片后的结果也是列表类型.切片有两种使用方式. 1.列表或列表变量:[N:M]     2.列表或列表变量[N:M:K]即[起点:终点:步 ...

  9. java二维数组从键盘更改_互换二维数组的行列。要求数组的行数、列数以及各元素均从键盘输入;输出互换前数组内容和互换后数组内容。(要求循环输入进行测试)Java...

    1. 互换二维数组的行列.要求数组的行数.列数以及各元素均从键盘输入:输出互换前数组内容和互换后数组内容.(要求循环输入进行测试) package com.mingrisoft; import jav ...

最新文章

  1. 12×××求职经过-之求职信
  2. WINCE6.0+S3C2443的启动过程---eboot2
  3. 物料编码原则外部分配还是内部分配
  4. linux安装多路径报错,linux多路径软件rdac安装方法
  5. java web中jsp常用标签
  6. java 断点_每个Java开发人员应拥有的持久断点
  7. java 编译 注释_Java编译、注释、常量简介
  8. 【Elasticsearch】Elasticsearch 存储桶聚合
  9. 【报告分享】2021新青年国货消费研究报告:文化觉醒时代,宝藏国货迎复兴机遇.pdf(附下载链接)...
  10. ON1 Effects 2022 for mac(ps调色滤镜库)支持m1
  11. tbytes 转 十六进制 string
  12. C# 引用访问权限,很多老手都不懂
  13. CmemDC类 的使用方法
  14. 毕设题目:Matlab图像压缩
  15. 经典案例 | I-SPY2乳腺癌药物临床试验采用RPPA技术建立药物响应相关分子分型
  16. Eplan 各版本 软件 百度网盘 永久链接
  17. 解决IE浏览器jQuery执行ajax不响应问题
  18. 2009网易校园招聘笔试题
  19. LevOJ B3408热浪
  20. mariadb(mysql)[详解]

热门文章

  1. Linux内核分析:recv、recvfrom、recvmsg函数实现
  2. Cocos2d Box2D之简介
  3. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 所有的基础数据都可以恢复删除...
  4. C++dll导出类的方式__declspec(dllexport)
  5. 识别你的ADFS是什么版本的(Which version of ADFS is running)
  6. 【跟着我们学Golang】基础结构
  7. 《Python爬虫开发与项目实战》——第1章 回顾Python编程 1.1 安装Python
  8. MYSQL 调优和使用必读
  9. HDU 5570:balls 期望。。。。。。。。。。。。。。。
  10. 8.15 号 程序 循环结构作业的代码