import java.util.Scanner;
public class 回文数 {
static int time = 0;
public static int change(String str) {//十六进制转换为十进制
return Integer.valueOf(str,16);
}
public static String changeTo(int a) {//十进制转换为十六进制
return Integer.toHexString(a);
}
public static String reverse(String str) {
char[] arr = str.toCharArray();
for(int i = 0;i < arr.length / 2;i ++) {
char temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
String strReverse = "";
for(int i = 0;i < arr.length;i++) {
strReverse += arr[i];
}
return strReverse;
}
public static boolean jiance(String str) {
char[] arr = str.toCharArray();
for(int i = 0;i < arr.length / 2; i++) {
if(arr[i] != arr[arr.length - 1 - i]) {
return false;
}
}
return true;
}
public static String Jia(String a,String b,int jinzhi) {
char[] arr = a.toCharArray();
char[] brr = b.toCharArray();
String str = "";
int jinwei = 0;
for(int i = arr.length - 1;i >= 0;i --) {
int result = arr[i] + brr[i] + jinwei - 48 * 2;
jinwei = result / jinzhi;
str += String.valueOf(result % jinzhi);
if(i == 0 && jinwei != 0) {
str += String.valueOf(jinwei);
}
}
// System.out.println(reverse(str));
return reverse(str);
}
public static void huiwen(int jinzhi,String str) {
time ++;
char[] arr = str.toCharArray();
String strReverse = reverse(str);
String result;
if(jinzhi == 16) {
int flag = change(str) + change(strReverse);
result = changeTo(flag);
}else {
result = Jia(str,strReverse,jinzhi);
}
if(jiance(result) == false){
if(time >= 30) {
System.out.println("Impossible!");
return;
}
huiwen(jinzhi,result);
}else {
System.out.println("STEP=" + time);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int jinzhi = sc.nextInt();
String str = sc.next();
huiwen(jinzhi,str);
}
}
Java实现 蓝桥杯VIP 算法训练 回文数
2023-09-14 08:58:17 时间
相关文章
- Java实现 蓝桥杯 算法训练 第五次作业:字符串排序
- Java实现 蓝桥杯 算法训练 数据交换
- Java实现 蓝桥杯 算法训练 Multithreading
- Java实现 蓝桥杯VIP 算法训练 数对
- Java实现 蓝桥杯VIP 算法训练 字符串编辑
- Java实现 蓝桥杯VIP 算法训练 删除多余括号
- Java实现 蓝桥杯VIP 算法训练 数列
- Java实现 蓝桥杯VIP 算法训练 大小写判断
- Java实现 蓝桥杯VIP 算法训练 快速排序
- Java实现 蓝桥杯VIP 算法训练 数组查找及替换问题
- Java实现 蓝桥杯VIP 算法训练 统计单词个数
- Java实现 蓝桥杯 算法训练 纪念品分组
- Java实现 蓝桥杯VIP 算法训练 单词接龙
- Java实现 蓝桥杯VIP 算法训练 单词接龙
- Java实现 蓝桥杯VIP 算法训练 完数
- Java实现 蓝桥杯VIP 算法训练 黑色星期五
- Java实现 蓝桥杯VIP 算法训练 最大值与最小值的计算
- Java实现 蓝桥杯VIP 算法训练 判断字符位置
- Java实现 蓝桥杯VIP 算法训练 s01串
- Java实现 蓝桥杯 算法训练 约数个数
- Java实现 蓝桥杯 算法训练 字串统计
- Java实现 蓝桥杯 算法训练 字串统计
- Java实现 蓝桥杯 算法训练 大小写转换
- Java实现 蓝桥杯 算法训练 删除数组零元素
- Java实现 蓝桥杯 算法训练 K好数
- Java实现十六进制转十进制
- Java 蓝桥杯 算法训练(VIP) 最大体积
- 蓝桥杯 算法训练 P0505(Java解法)
- java中long和Long的区别
- JAVA开发讲义(二)-Java程序设计之数据之谜四
- JAVA开发讲义(一)-Java的自白