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

简介: 先来看题目:

先来看题目:


这道题目有很多优解,因为我想熟悉一下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;
    }
}
相关文章
|
3月前
|
小程序 JavaScript Java
基于Java的大学生心理健康答题小程序设计与实现(亮点:选题新颖、可以发布试卷设置题目、自动判卷、上传答案、答案解析)
基于Java的大学生心理健康答题小程序设计与实现(亮点:选题新颖、可以发布试卷设置题目、自动判卷、上传答案、答案解析)
51 0
|
4月前
|
自然语言处理 监控 数据可视化
第七章项目范围管理(选择4分,偶尔考案例)
第七章项目范围管理(选择4分,偶尔考案例)
|
4月前
|
自然语言处理 监控 项目管理
第六章项目整体管理(选择5分,案例偶尔考)
第六章项目整体管理(选择5分,案例偶尔考)
|
5月前
|
算法
代码随想录算法训练营第二十四天 | LeetCode 77.组合
代码随想录算法训练营第二十四天 | LeetCode 77.组合
65 0
|
存储 算法 C++
数据结构与算法——第四节 栈和队列(C 模拟实现+思路分析+运行截图)
对于栈和队列,我们在这里只是把 其底层的原理简单的说一下,等到C++说到STL的时候,我们还会详细地说。
149 0
数据结构与算法——第四节 栈和队列(C 模拟实现+思路分析+运行截图)
|
存储 索引 Python
第二章 Python编程基础综合题目
第二章 Python编程基础综合题目
536 0
|
算法 C++
算法基础系列第三章——一文详解DFS(全排列演示带入)
算法基础系列第三章——一文详解DFS(全排列演示带入)
242 0
算法基础系列第三章——一文详解DFS(全排列演示带入)
|
算法 搜索推荐 C++
【算法】面试必备之0基础学算法 快速排序(详细讲解+私人笔记+代码展示)
二分查找又称折半查找、二分搜索、折半搜索等,是在分治算法基础上设计出来的查找算法,对应的时间复杂度为O(logn)。到这里是不是感觉很熟悉,我们前两期的算法知识,也是基于分治的方法去进行学习的,如果有这方面还不了解的朋友,你可以到我的第一篇文章(0基础学算法)里面去查看一下。
113 0
【算法】面试必备之0基础学算法 快速排序(详细讲解+私人笔记+代码展示)
|
人工智能 算法 搜索推荐
【算法】面试必备之0基础学算法 归并排序(详细讲解+私人笔记+代码展示)
归并排序是一个稳定的排序算法,在进行子数组合并的时候,我们可以设置当元素大小相等时,先将前半部分的数据放入临时数组,这样就可以保证相等元素在排序后依然保持原来的顺序,并且归并排序的执行效率与原始数据的有序程度无关,其时间复杂度是非常稳定的,都是O(nlogn) ...
108 0
【算法】面试必备之0基础学算法 归并排序(详细讲解+私人笔记+代码展示)