這是2014年實習生的一道題,當我拿着這題的時候,以爲蠻簡單,但是當我動手動的時候就出問題了,也許有點緊張,當時一會兒就蒙了。事後重新看了這題,其實考的就是一些基礎中的小細節:一、將字符串正確的轉換爲整形。二、String中的函數應用。三、關於*-+特殊字符的掌握。四、總體思路要清晰。數組
首先將每組字符串利用運算符分隔並放到數組中ide
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 }
真的是細節決定高度....spa