进制中的回文数相关算法
程序员文章站
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
上一篇: 线程有哪些基本状态?
下一篇: Java输入字符串统计其中每个字符的个数