划句顾 发表于 2023-3-5 20:47:58

JAVA练习:5.分支与循环语句1.1——回文数

本帖最后由 划句顾 于 2023-3-5 20:47 编辑



实验要求:1.编写一个Java程序;
                 2.用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数;
                 3.判断这个数是否是回文数。
回文数:是指讲该数含有的数字逆序排列后得到的数和原数相同

运行结果如下:

package case_and_for;

import java.util.Scanner;
public class Number {

        public static void main(String[] args) {
                int number = 0,d5,d4,d3,d2,d1;
                Scanner reader = new Scanner(System.in);
                System.out.println("输入一个1至99999之间的数");
                number = reader.nextInt();
                if(number>0 && number<100000) {
                        d5 = number / 10000;
                        d4 = number % 10000 / 1000;
                        d3 = number % 1000/ 100;
                        d2 = number % 100   / 10;
                        d1 = number % 10;
                        if(d5>0)// 条件可以改成d5 != 0
                        {
                                System.out.println(number+"是5位数");
                                if((d1*10000+d2*1000+d3*100+d4*10+d5) == number )   //条件可以改成 d1 == d5 && d2 == d4
                                {
                                        System.out.println(number+"是回文数");
                                }
                                else
                                {
                                        System.out.println(number+"不是回文数");
                                }
                        }
                        else if(d4>0) // 条件可以改成d4 != 0
                        {
                                System.out.println(number+"是4位数");
                                if((d1*1000+d2*100+d3*10+d4) == number )// 条件可以改成d1 == d4 && d2 == d3
                                {
                                        System.out.println(number+"是回文数");
                                }
                                else
                                {
                                        System.out.println(number+"不是回文数");
                                }
                        }
                        else if(d3>0)// 条件可以改成d3 != 0
                        {
                                System.out.println(number+"是3位数");
                                if((d1*100+d2*10+d3*1) == number )//条件可以改成 d1 == d3
                                {
                                        System.out.println(number+"是回文数");
                                }
                                else
                                {
                                        System.out.println(number+"不是回文数");
                                }
                        }
                        else if(d2>0) // 条件可以改成d2 != 0
                        {
                                System.out.println(number+"是2位数");
                                if((d1*10+d2) == number )// 条件可以改成 d1 == d2
                                {
                                        System.out.println(number+"是回文数");
                                }
                                else
                                {
                                        System.out.println(number+"不是回文数");
                                }
                        }
                        else if(d1>0) // 条件可以改成d1 != 0
                        {
                                System.out.println(number+"是1位数");
                                System.out.println(number+"是回文数");
                        }
                       
                }
                else {
                        System.out.printf("\n%d不在1至99999之间",number);
                }
        }

}





输入一个数返回它的回文数
方法如下:
第一种:
package hello;

import java.util.Scanner;

public class Hello {
        public static void main(String[] args) {
//      初始化               
                Scanner in = new Scanner(System.in);
                int number;
                int a;
                number = in.nextInt();
                do
                {
                        a = number % 10;
                        number = number / 10;
                        System.out.print(a);
                }while(number > 0);
               
        }
}

static/image/hrline/5.gif

第二种:
package hello;

import java.util.Scanner;

public class Hello {
        public static void main(String[] args) {
//      初始化               
                Scanner in = new Scanner(System.in);
                int number;
                int a;
                int result = 0;
                number = in.nextInt();
                do
                {
                        a = number % 10;
                        number = number / 10;
                        result = a + result*10;//记录and相加
                }while(number > 0);
                System.out.println(result);
        }
}
运行结果如下:

页: [1]
查看完整版本: JAVA练习:5.分支与循环语句1.1——回文数