• Java实现 蓝桥杯VIP 算法训练 回文数


    在这里插入图片描述

    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);
    	    }
    
    }
    
    
  • 相关阅读:
    蓝鲸财经新闻记者实战培训
    雷军解密小米商业内核
    OpenGL6-纹理动画
    OpenGL5-纹理贴图
    OpenGL4-绘制旋转的立方体
    OpenGL3-绘制各种图元绘制
    OpenGL2-绘制三角形
    OpenGL1-创建窗口(建立Win32的OpenGL开发环境 )(代码上传)
    一步步做程序优化-讲一个用于OpenACC优化的程序(转载)
    常用编译选项介绍
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13078589.html
Copyright © 2020-2023  润新知