JAVA回文数判断与

题目:打印5位数中的所有回文数,每行打印10个数。最后统计一下一共有多少个5位回文数。

注:回文数即正反读都是一个数,5位数的话,只要个位与万位相同,十位与千位相同就是一个回文数。

文章用了4种方法判断与输出

for循环

多重for循环(把个位和万位直接赋值为一样的)

int赋值(采用num%10、num/10的循环方式,将其存入int型数组)

数组

其中知识点:

1.toString() 方法用于返回以一个字符串表示的 Number 对象值。

toString(): 返回表示 Integer 值的 String 对象。

toString(int i): 返回表示指定 int 的 String 对象。

String s=Integer.toString(input);
将int类型input转换为字符串类型s 
直接转换则为input.toString();

2.toCharArray() 方法将字符串转换为字符数组

char arr[]=s.toCharArray();将字符串s转化为数组arr[]

(第四种方法数组的for循环+if判断不太明白 等以后学明白数组再来看)

3.

//If(flag)  == if(flag==true)
//
//If(!flag) == if(!flag==true)
package com.wu.exercise;

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
       /* Scanner scanner=new Scanner(System.in);//第一种方法 输出回文数
        //System.out.println("请输入一个五位数字");
        //int a=scanner.nextInt();
//for(int a=10000;a<=99999;a++){ //第二种方法 遍历后直接输出a
        boolean flag=true;
        //54145
        int b=a/10000;
        int c=a/1000%10;
        int d=a/100%10;
        int e=a/10%10;
        int f=a%10;
        if(b==f&&c==e){
            System.out.println("该数字为回文数");

        }else {
            System.out.println("该数字不是回文数");
        }
    }}
}*/
        /*int count=0;//第三种方法 把个位和万位直接赋值为一样的
        for(int ge=0;ge<10;ge++){
            for (int shi = 0; shi <10; shi++) {
                for (int bai = 0; bai <10; bai++) {
                    System.out.print(ge+""+shi+""+bai+""+shi+""+ge);
                    System.out.print("\t");
                    count++;
                   if(count%10==0){
                   System.out.println();
                }
                }

            }}
        System.out.println("总数为"+count);
    }
    }*/
        //另外给出 判断输入的数是否是回文数的算法 用数组
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入需要判断的数(位数不限):");
        int input = scanner.nextInt();
    boolean flag=true;
    String s=Integer.toString(input);
    char arr[]=s.toCharArray();
//for循环语句如果循环体内只有一条执行语句则不用加大括号,如果执行语句为多条语句则必须用大括号括起来,以表示这一部分的执行语句都在循环体内,循环条件满足时要被执行的语句;
        for (int i = 0;i < arr.length / 2 ; i ++)
            if (arr[i] != arr[arr.length - i - 1]) {  //数组中从左向右数第i个数对应从左向右数第arr.length - i - 1个数(从右向左为第i个数)
                flag = false;

        System.out.println("不是回文数");
        break;
    }
    if(flag)//有括号的话,if语句控制{}里面的所有语句,没括号的话,if语句只控制最近的一行。每句代码以分号 ; 分隔开来。 最好都加上以防特殊情况
        //If(flag)  == if(flag==true)
        //
        //If(!flag) == if(!flag==true)
        System.out.print("您输入的数是回文数!");
        scanner.close();
    }
    }

输出:

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值