微软Java笔试题2014

这是2014年实习生的一道题,当我拿着这题的时候,觉得蛮简单,可是当我动手动的时候就出问题了,也许有点紧张,当时一下子就蒙了。过后从新看了这题,其实考的就是一些基础中的小细节:1、将字符串正确的转换为整形。2、String中的函数应用。3、关于*-+特殊字符的掌握。4、整体思路要清晰。

首先将每组字符串利用运算符分隔并放到数组中

 1 Scanner input=new Scanner(System.in);
 2         int num=input.nextInt();        
 3         double []count=new double[num];            
 4         String []arr=new String[num];        
 5         for (int i = 0; i < num; i++) {
 6             System.out.println("输入"+(i+1)+"表达式");
 7             arr[i]=input.next();
 8             if(arr[i].split("/").length!=1){
 9                 String []arr_=arr[i].split("/");                
10                 count[i]=Integer.parseInt(arr_[0])/Integer.parseInt(arr_[1]);                
11             }else if(arr[i].split("\\*").length!=1){
12                 String []arr_=arr[i].split("\\*");
13                 count[i]=Integer.parseInt(arr_[0])*Integer.parseInt(arr_[1]);
14             }else if(arr[i].split("\\-").length!=1){
15                 String []arr_=arr[i].split("\\-");
16                 count[i]=Integer.parseInt(arr_[0])-Integer.parseInt(arr_[1]);
17             }else{
18                 String []arr_=arr[i].split("\\+");
19                 count[i]=Integer.parseInt(arr_[0])+Integer.parseInt(arr_[1]);
20             }
21             
22         }

然后就是输出了

 1 double[] sum=new double[num];
 2         for (int i = 0; i < num; i++) {
 3             if(count[i]>9||count[i]==9){
 4                 sum[i]=count[i]-9;
 5             }else{
 6                 sum[i]=9-count[i];
 7             }
 8         }
 9         double num1=sum[0];
10         for (int i = 1; i < num; i++) {
11             if(sum[i]<num1){
12                 num1=sum[i];
13             }
14         }    
15         for (int i = 0; i < num; i++) {
16             if(sum[i]==num1){
17                 System.out.println(i+1);
18                 break;
19             }
20         }
View Code

真的是细节决定高度....

posted @ 2014-04-05 21:02  场者  阅读(463)  评论(0编辑  收藏  举报