欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

进制中的回文数相关算法

程序员文章站 2022-03-26 17:12:54
求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制数10的最小值。回文数:“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。 Java代码package com.java....

求用十进制、二进制、八进制是回文数的所有数字中,大于十进制数10的最小值。

回文数:
“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。

设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。

Java代码

package com.java.test01;
/*回文数算法*/
public class test03 {
    public static void main(String[] args) {
        int[] arr;
        arr = new int[30];
        for(int i=0;i<arr.length;i++){
            arr[i]=i+1;
        }
        System.out.println(find(10,arr));

    }
    public static int[] sys(int sys ,int arr[]){
        int[] nums;
        nums=arr;
        switch (sys){
            case 2:
                for (int i=0;i<arr.length;i++){
                    if(nums[i]>10){
                        nums[i]= Integer.parseInt(Integer.toBinaryString(arr[i]));
                    }
                }
                break;
            case 8:
                for (int i=0;i<arr.length;i++){
                    if(nums[i]>10){
                        nums[i]=Integer.parseInt(Integer.toOctalString(arr[i]));
                    }
                }
                break;
            case 10:
                break;
            default:
                break;
        }

        return nums;
    }
    public static int find(int sys,int[] arrs){
        int[] arr;
        arr=sys(sys,arrs);
        int g,s,b,q,w;
        for(int i=0;i<arr.length;i++){
            g=arr[i]%10;
            s=arr[i]%100/10;
            b=arr[i]%1000/100;
            q=arr[i]%10000/1000;
            w=arr[i]/10000;
            if(w>0&&w==g&&q==b){
                return arr[i];
            }else {
                if (w==0&&q>0&&q==g&&b==s){
                    return arr[i];
                }else {
                    if(w==0&&q==0&&b>0&&b==g){
                        return arr[i];
                    }else {
                        if(w==0&&q==0&&b==0&&s>0&&s==g){
                            return arr[i];
                        }
                    }
                }
            }

        }
        return 0;
    }
}

进制中的回文数相关算法
来自初学者憨憨

本文地址:https://blog.csdn.net/qq_45048186/article/details/110260625

相关标签: 算法