称号:
离5个人选择2个人作为礼工具。中的每个个体的身高的范围160-190,要求2个人高差值至少(假设差异值一样,他们中最高的选择)。输出的两个人的身高升序。
Smple input:161 189 167 172 188 Sample outPut: 188 189
分析:我的理解就是先逆序排好数值, 然后逐对照较身高差值。 找出身高差值最小的然后输出
代码例如以下:
package com.wenj.test;
/** * 要从5个人中选取2个人作为礼仪。当中每一个人的身高范围为160-190,要求2个人的身高差值最小(假设差值同样的话,选取当中最高的两人)。以升序输出两个人的身高。 * Smple input:161 189 167 172 188 Sample outPut: 188 189 * @author wenj91-PC * */ public class TestBestGround { public static void main(String args[]){ String strIn = "161 189 167 172 188"; TestBestGround tb = new TestBestGround(); tb.printTheBestGround(strIn); } public void printTheBestGround(String strIn){ String strTemp = strIn; String[] strArr = strTemp.split(" "); int[] numArr = new int[strArr.length]; for(int i=0; i<strArr.length; i++){ numArr[i] = Integer.parseInt(strArr[i]); } for(int i=0; i<numArr.length; i++){ for(int j=i+1; j<numArr.length; j++){ if(numArr[i]<numArr[j]){ int temp = numArr[i]; numArr[i] = numArr[j]; numArr[j] = temp; } } } int aver = numArr[0]-numArr[1]; int pos = 0; for(int i=1; i<numArr.length-1; i++){ int temp = numArr[i]-numArr[i+1]; if( temp < aver){ aver = temp; pos = i; } } System.out.println(numArr[pos+1] + " " + numArr[pos]); } }版权声明:本文博主原创文章。博客,未经同意不得转载。