1.数列排序
问题描述:
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式:
第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式:
输出一行,按从小到大的顺序输出排序后的数列。
样例输入:5
8 3 6 4 9
样例输出:3 4 6 8 9
import java.util.*;//若为Scanner则无法使用Arrays
public class Main0405_1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] nums = new int[n];//建立数组nums,数组有n个数
for (int i = 0;i<n;i++){
nums[i]=sc.nextInt();
}
Arrays.sort(nums);
for (int i =0;i<n;i++){
System.out.print(nums[i]+" ");//记得双引号加空格,因为样例输出每个数都有间隔
}
}
}
2.十六进制转八进制
问题描述:给定n个十六进制正整数,输出它们对应的八进制数。
输入格式:输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式:输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
【提示】先将十六进制数转换成某进制数,再由某进制数转换成八进制。
import java.util.Scanner;
public class Main0405_2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 0;i<n;i++){
//获取每一行输入数据
String line = sc.next();
StringBuilder builder = new StringBuilder();
for (int k = 0;k<line.length();k++){
//取每一位十六进制转成二进制放到容器里
builder.append(hexToBin(line.substring(k, k + 1)));
}
String bin = format3(builder.toString());
builder = new StringBuilder();
for (int k = 0;k<bin.length();k+=3){
builder.append(binToOct(bin.substring(k, k + 3)))</