zoukankan      html  css  js  c++  java
  • java实现第六届蓝桥杯生成回文数

    生成回文数

    所谓回文数就是左右对称的数字,比如:
    585,5885,123321…
    当然,单个的数字也可以算作是对称的。

    小明发现了一种生成回文数的方法:
    比如,取数字19,把它与自己的翻转数相加:
    19 + 91 = 110,如果不是回文数,就再进行这个过程:
    110 + 011 = 121 这次是回文数了。

    200以内的数字中,绝大多数都可以在30步以内变成回文数,只有一个数字很特殊,就算迭代了1000次,它还是顽固地拒绝回文!

    请你提交该顽固数字,不要填写任何多余的内容。

    答案:196

    public class Main {
        
        public long Reverse(long n) {
            int len = new String(""+n).length();
            long[] A = new long[len];
            int i = 0;
            while(n > 0) {
                A[i++] = n % 10;
                n = n / 10;
            }
            long result = 0;
            for(i = 0;i < len;i++)
                result = result * 10 + A[i];
            return result;
        }
        
        public static void main(String[] args) {
            Main test = new Main();
            for(long i = 0;i <= 200;i++) {
                int count = 0;
                long a = i;
                long b = test.Reverse(a);
                while(a != b) {
                    a = a + b;
                    b = test.Reverse(a);
                    count++;
                    if(count > 1000) {
                        System.out.println("i = "+i+", a = "+a+", b = "+b);
                        break;
                    }
                }
            }
        }
    }
    
  • 相关阅读:
    Watching Fireworks is Fun
    数字计数
    HashMap源码解析
    ArrayLIst、Vector和LinkedList三者的区别
    Vector源码解析
    LinkedList源码解析
    ArrayList源码解析
    计算机网络笔记——第二章、物理层
    计算机网络笔记——第一章、概述
    2020-3-5 牛客试题复盘
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13077220.html
Copyright © 2011-2022 走看看