zoukankan      html  css  js  c++  java
  • 算法笔记_181:历届试题 回文数字(Java)

    目录

    1 问题描述

    2 解决方案

     


    1 问题描述

    问题描述
      观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。

      本题要求你找到一些5位或6位的十进制数字。满足如下要求:
      该数字的各个数位之和等于输入的整数。
    输入格式
      一个正整数 n (10<n<100), 表示要求满足的数位和。
    输出格式
      若干行,每行包含一个满足要求的5位或6位整数。
      数字按从小到大的顺序排列。
      如果没有满足条件的,输出:-1
    样例输入
    44
    样例输出
    99899
    499994
    589985
    598895
    679976
    688886
    697796
    769967
    778877
    787787
    796697
    859958
    868868
    877778
    886688
    895598
    949949
    958859
    967769
    976679
    985589
    994499
    样例输入
    60
    样例输出
    -1

    2 解决方案

    具体代码如下:

     

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Scanner;
    
    public class Main {
        public static int n;
        
        public void getResult() {
            ArrayList<Integer> result = new ArrayList<Integer>();
            for(int i = 10000;i < 1000000;i++) {
                String temp = i + "";
                if(temp.length() == 5) {
                    if(temp.charAt(0) == temp.charAt(4) && temp.charAt(1)
                            == temp.charAt(3)) {
                        int num = i % 10 * 2 + i / 10 % 10 * 2 + i / 100 % 10;
                        if(num == n)
                            result.add(i);
                    }
                } else if(temp.length() == 6) {
                    if(temp.charAt(0) == temp.charAt(5) && temp.charAt(1)
                            == temp.charAt(4) && temp.charAt(2) == temp.charAt(3)) {
                        int num = i % 10 * 2 + i / 10 % 10 * 2 + i / 100 % 10 * 2;
                        if(num == n)
                            result.add(i);
                    }
                }
            }
            if(result.size() == 0)
                System.out.println("-1");
            else {
                Collections.sort(result);
                for(int i = 0;i < result.size();i++)
                    System.out.println(result.get(i));
            }
        }
            
        public static void main(String[] args) {
            Main test = new Main();
            Scanner in = new Scanner(System.in);
            n = in.nextInt();
            test.getResult();
        }
    }

     

  • 相关阅读:
    C#使用Json
    JQuery AJAX介绍
    封装一个自己的 Ajax小框架
    AJAX跨域实现
    AJAX 一些常用方法
    完整的 AJAX 写法(支持多浏览器)
    AJAX 简单上手
    利用反射生成SQL语句
    访问Access数据库(有多个数据库时 体现多态)
    DataTable操作(建表,建行,建列,添加数据)
  • 原文地址:https://www.cnblogs.com/liuzhen1995/p/6814900.html
Copyright © 2011-2022 走看看