【蓝桥杯】基础练习--特殊回文数,可供参看思路

简介: 先来看题目:

先来看题目:


这道题目有很多优解,因为我想熟悉一下Java的内置方法,所有写得看上去比较累赘,但是思路还是清晰的。


因为题目要求的是回文数,数字之和为n,那么自然而然可以想到用两个方法来判断。

我自己写了两个方法


1.Number:判断是否为回文数,不是则返回1,是则返回该数


2.Sum:在这个方法里调用Number,将是回文数的数的每个数相加,在Main方法里面判断Sum的值是否为输入的值。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int nextInt = sc.nextInt();
        //遍历最小五位数到最大六位数的值
        for (int i = 10000;i<=999999;i++){
            if (Sum(i) != nextInt){
            //相加的值不等于输入的值,不执行下一步,跳出循环
                continue;
            }
            System.out.println(Number(i));
            }
        }
        //判断是否为回文数,不是返回1
    public static Integer Number(int n){
        String sb = Integer.toString(n);
        String a = "1";
            int left = 0;
            int right = sb.length() - 1;
            while (right > left) {
                if (sb.charAt(left) != sb.charAt(right)) {
                    a = "1";
                    break;
                }
                else {
                    a = sb;
                }
                left++;
                right--;
            }
        return Integer.parseInt(a);
    }
        //各个数字相加
    public static Integer Sum(int n){
        Integer a = Number(n);
        Integer every= 0;
        if (a == 1){
            return 1;
        }else {
            String number = Integer.toString(a);
            for (int k = 0;k<number.length();k++){
                String str = number.substring(k,k+1);
                Integer sum = Integer.parseInt(str);
                every+=sum;
            }
        }
        //返回的是每个数字相加的结果
    return every;
    }
}
相关文章
|
6月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
79 1
|
6月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
107 0
|
6月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
82 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
83 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
89 0
|
6月前
|
机器学习/深度学习 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
91 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
90 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-985 幸运的店家
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-985 幸运的店家
82 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-983 最大获利
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-983 最大获利
67 0