赞
踩
公司年会
解题思路
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String in = sc.nextLine();
String[] numsOfString = in.split(",");
if(numsOfString.length != 3){//必须三个数字
System.out.println(-1);
return;
}
int[] nums = new int[3];//存储三个输入数字
for(int i = 0; i < 3; i++){
nums[i] = Integer.valueOf(numsOfString[i]);
}
int twoOrFive = 0;
int sixOrNine = 0;
for(int n : nums){//判断数字是否符合要求
if(n < 1 || n > 9){
System.out.println(-1);
return;
}
if(n == 2 || n == 5)
twoOrFive++;
if(n == 6 || n == 9)
sixOrNine++;
}
if(twoOrFive == 2 || sixOrNine == 2){//2,5或6,9一起出现,不符合要求
System.out.println(-1);
return;
}
if(nums[0] == nums[1] || nums[0] == nums[2] || nums[1] == nums[2]){//不能有重复数字
System.out.println(-1);
return;
}
List<Integer> list = new ArrayList<Integer>();//结果序列
for(int i = 0; i < 3; i++) {//放入1位数
int num = nums[i];
if(num == 2 || num == 5 || num == 6 || num == 9){
if(num == 2 || num == 5){
list.add(2);list.add(5);
}
else{
list.add(6);list.add(9);
}
}
else
list.add(num);
}
int size = list.size();
for(int i = 0; i < size; i++)//放入2位数
for(int j = 0; j < size; j++)
if(i != j)
if(isOk(list.get(i),list.get(j)))
list.add(list.get(i) * 10 + list.get(j));
int max = Math.max(Math.max(nums[0],nums[1]),nums[2]);
Collections.sort(list);//排序
System.out.println(list.get(max - 1));
}
public static boolean isOk(int n,int m){//生成两位数的时候2,5或6,9不能一起算
if(n == 2 || n == 5)
return m != 2 && m != 5;
else if(n == 6 || n == 9)
return m != 6 && m != 9;
return true;
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。