声明:蓝桥杯练习系统中的Java环境为1.8.0

BASIC-8

import java.util.*;


public class Main {
   

	public static void main(String[] args) {
   
		for (int i = 1000; i < 10000; i++) {
   
			int a = i / 1000;
			int b = (i - a * 1000) / 100;
			int c = (i - (a * 1000 + b * 100)) / 10;
			int d = i % 10;
			if (a == d && b == c) {
   
				System.out.println(i);
			}
		}
	}
}

BASIC-9

package test;

import java.util.*;

public class Main {
   

	public static void main(String[] args) {
   
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for (int i = 10000; i < 1000000; i++) {
   
			//当i是六位数时
			if (i > 100000) {
   
				// 第一位
				int a = i / 100000;
				// 第二位
				int b = (i / 10000) % 10;
				// 第三位
				int c = (i / 1000) % 10;
				// 第四位
				int d = (i / 100) % 10;
				// 第五位
				int e = (i / 10) % 10;
				// 第六位
				int f = i % 10;
				if (a == f && b == e && c == d && (a + b + c + d + e + f) == n) {
   
					System.out.println(i);
				}
			}else{
   
				//当i是五位数时
				// 第一位
				int a = (i / 10000) % 10;
				// 第二位
				int b = (i / 1000) % 10;
				// 第三位
				int c = (i / 100) % 10;
				// 第四位
				int d = (i / 10) % 10;
				// 第五位
				int e = i % 10;
				if (a == e && b == d  && (a + b + c + d + e) == n) {
   
					System.out.println(i);
				}
				
			}
		}
	}
}

BASIC-10

import java.util.*;

public class Main {
   

	public static void main(String[] args) {
   
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String result = "";
		//这里千万不要忘了n=0 的情况少了就扣十分
		if(n==0){
   
			result="0";
		}
		while (n != 0) {
   
			char s;
			int a = n % 16;
			if (a > 9) {
   
				s = (char) ('A' + (a - 10));
			} else {
   

				s = (char) ('0' + (a - 0));
			}
			result = s + result;
			n = n / 16;
		}
		System.out.println(result);
	}
}

BASIC-11

import java.util.*;

public class Main {
   

	public static void main(String[] args) {
   
		   Scanner in = new Scanner(System.in);  
	        String a = in.nextLine();  
	        //这里需要注意,使用long 是为了防止转换成的十进制数超出了int的范围。
	        //parseLong对字符串参数的解析就是按照这个进制标准进行转化成10进制的数值
	        long b = Long.parseLong(a, 16);  
	        System.out.println(b); 
	}
}

BASIC-12

import java.util.*;

/* *这里说明一下,为什么16进制要先转化为2进制再转化为8进制 *题中说了“每个十六进制数长度不超过100000”,这个长度long类型容纳不下, 所以不能先转换成10进制,再转换成8进制,所以这时候需要用到了字符串,先转化为2进制,使用数组来存放各个数据 */
public class Main {
   

	public static void main(String[] args) {
   
		Scanner sc = new Scanner(System.in);
		// 输入想转化的数的个数
		int n = sc.nextInt();
		// 16进制数转化为2进制之后存入这个数组里
		String[] two = new String[n];
		for (int i = 0; i < n; i++) {
   
			// 输入想转化的数
			String x = sc.next();
			// 将16进制的数转为2进制存入数组中
			two[i] = toTwo(x);
		}
		for (int i = 0; i < n; i++) {
   
			System.out.println(toEight(two[i]));
		}
	}

	// 将16进制转化为2进制的方法
	static String toTwo(String sixteen) {
   
		// 获取16进制数的长度
		int length = sixteen.length();
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < length; i++) {
   
			// 挨个获取
			switch (sixteen.charAt(i)) {
   
			case '0':
				sb.append("0000");
				break;
			case '1':
				sb.append("0001");
				break;
			case '2':
				sb.append("0010");
				break;
			case '3':
				sb.append("0011");
				break;
			case '4':
				sb.append("0100");
				break;
			case '5':
				sb.append("0101");
				break;
			case '6':
				sb.append("0110");
				break;
			case '7':
				sb.append("0111");
				break;
			case '8':
				sb.append("1000");
				break;
			case '9':
				sb.append("1001");
				break;
			case 'A':
				sb.append("1010");
				break;
			case 'B':
				sb.append("1011");
				break;
			case 'C':
				sb.append("1100");
				break;
			case 'D':
				sb.append("1101");
				break;
			case 'E':
				sb.append("1110");
				break;
			case 'F':
				sb.append("1111");
				break;
			default:
				break;
			}

		}
		return sb.toString();
	}

	// 将2进制的数转化为8进制 的方法
	static String toEight(String two) {
   
		int length = two.length();
		//判断长度是不是三的倍数
		if(length%3==1){
   
			two="00"+two;
		}
		if(length%3==2){
   
			two="0"+two;
		}
		int k;
		StringBuffer sb = new StringBuffer();
		// 判断出二进制的前三位是否都为0
		if (two.substring(0, 3).equals("000")) {
   
			k = 3;
		} else {
   
			k = 0;
		}
		//注意:这里的条件中,不能将two.length() - 2写为length-2,
		//因为在上面判断length是否为3的倍数的时候,改变了他的长度。所以这里也应该是动态的
		for (int i = k; i < two.length() - 2; i += 3) {
   
			String str = two.substring(i, i + 3);
			if (str.equals("000")) {
   
				sb.append("0");
			}
			if (str.equals("001")) {
   
				sb.append("1");
			}
			if (str.equals("010")) {
   
				sb.append("2");
			}
			if (str.equals("011")) {
   
				sb.append("3");
			}
			if (str.equals("100")) {
   
				sb.append("4");
			}
			if (str.equals("101")) {
   
				sb.append("5");
			}
			if (str.equals("110")) {
   
				sb.append("6");
			}
			if (str.equals("111")) {
   
				sb.append("7");
			}

		}

		return sb.toString();
	}

}

BASIC-13

import java.util.*;

public class Main {
   

	public static void main(String[] args) {
   
		Scanner sc=new Scanner(System.in);
		//输入数组的长度
		int n=sc.nextInt();
		int[] a=new int[n];
		//往数组中存放数
		for (int i = 0; i < a.length; i++) {
   
			a[i]=sc.nextInt();
			
		}
		//Api排序
		Arrays.sort(a);
		for (int i = 0; i < a.length; i++) {
   
			System.out.print(a[i]+" ");
		}	
	}

}