/**
* 输入十六进制转为十进制, 例如输入0xAA ,输出170
* @param input
* @return
*/
static String algorithm04(String input) {
char[] arr = input.toCharArray();
int result = 0;
for (int i = arr.length - 1; i >= 2; i--) {
int b = 0;
switch (arr[i]) {
case 'A':
b = 10;break;
case 'B':
b = 11;break;
case 'C':
b = 12;break;
case 'D':
b = 13;break;
case 'E':
b = 14;break;
case 'F':
b = 15;break;
default:
b = Integer.parseInt(String.valueOf(arr[i]));
break;
}
result = (int) (result+Math.pow(16,arr.length - 1 -i)*b);
}
return result+"";
}
/**
* 明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。
*/
static void algorithm03(){
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int N = in.nextInt();
HashSet<Integer> set = new HashSet<>();
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
set.add(a);
}
List<Integer> list = set.stream().sorted((a,b)->a>b?1:0).collect(Collectors.toList());
list.stream().forEach(System.out::println);
}
/**
* 某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。
* 小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。
* @param n
* @return
*/
static int algorithm02(int n){
int b = 0;
while(n>=3){
b=b+n/3;
n=n/3+n%3;
}
if(n==2){
b=b+1;
}
return b;
}