这是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 }
真的是细节决定高度....