华为2017实习生招聘笔试题-公司年会
2017-04-07 21:56
537 查看
公司年会
解题思路
N是输入的三个数中最大的数,因此N最大为9。由于任意3个不重复的数(不考虑2,5,6,9倒转的情况)组成的一位数有3种,两位数有6种,加起来9种。如果考虑2,5,6,9倒转情况则种树更多,因此这题的题设下就不需要考虑三位数的情况,因为是求从小到大第N大的数(三位数肯定在9开外)
考虑各种不合法输入
解题思路
N是输入的三个数中最大的数,因此N最大为9。由于任意3个不重复的数(不考虑2,5,6,9倒转的情况)组成的一位数有3种,两位数有6种,加起来9种。如果考虑2,5,6,9倒转情况则种树更多,因此这题的题设下就不需要考虑三位数的情况,因为是求从小到大第N大的数(三位数肯定在9开外)
考虑各种不合法输入
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; } }
相关文章推荐
- 华为2017实习生招聘笔试题-任务调度
- 华为2017实习生招聘笔试题-水仙花数
- 华为 2017 实习生招聘笔试题
- 华为2017笔试题 公司年会
- 网易2017暑期实习生招聘笔试编程题之小易背单词
- 网易互娱2017实习生招聘在线笔试第一场 题目1 : 电子数字
- 2017阿里研发工程师C/C++实习生招聘笔试题
- Little's Law(利特尔法则)的简要证明和重要应用(2012年某公司实习生招聘笔试试题)
- 网易互娱2017实习生招聘在线笔试(一)
- 网易互娱2017实习生招聘在线笔试第一场-题目3
- 网易互娱2017实习生招聘在线笔试第一场-3划线
- 某公司实习生招聘笔试题
- 华为2016届实习生招聘(武汉)笔试
- 简单详解:x^6+4x^4+2x^3+x+1 至少要需要多少次乘法? (某公司实习生招聘笔试试题)
- 再谈IPC之共享内存 (某公司实习生招聘笔试试题)
- 网易互娱2017实习生招聘在线笔试第一场-1电子数字
- 网易互娱2017实习生招聘游戏研发工程师在线笔试第二场(图像处理)
- 2017网易游戏雷火盘古实习生招聘笔试真题 第四题
- 名企笔试:网易游戏2017招聘笔试题(赶去公司)
- 2017华为暑期实习生校招笔试