输入包括一行,四个整数a,b,c,d(1 ≤ a,b,c,d ≤ 10^6), 以空格分割
输出一个整数,表示牛牛最少需要支付的硬币
4 1 5 4
4
public class Main { public static void main (String[] args) { Scanner sc = new Scanner(System.in); int[] array = new int[4]; for (int i = 0; i < 4; i++) { array[i] = sc.nextInt(); } int MAX_VALUE = Integer.MAX_VALUE; Arrays.sort(array); int result; for (int i = array[0]; i <= array[3]; i++) { result = Math.abs(Math.abs(i - array[0]) + Math.abs(i - array[1]) + Math.abs(i - array[2]) + Math.abs(i - array[3])); if (MAX_VALUE > result) { MAX_VALUE = result; } } System.out.println(MAX_VALUE); } }
import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner cin=new Scanner (System.in); int a[]=new int[4]; for(int i=0;i<4;i++) { a[i]=cin.nextInt(); } Arrays.sort(a); int min=0; min=min+(a[1]-a[0])+(a[3]-a[2])+2*(a[2]-a[1]); System.out.print(min); } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[4]; for (int i = 0; i < 4; i++) { arr[i] = sc.nextInt(); } int min = Integer.MAX_VALUE; for (int i = 0; i < 4; i++) { int cur = Math.abs(arr[i] - arr[0]) + Math.abs(arr[i] - arr[1]) + Math.abs(arr[i] - arr[2]) + Math.abs(arr[i] - arr[3]); if (cur < min) { min = cur; } } System.out.println(min); } }
爱奇艺的校招编程题不在常理之外了8....
取个中间值即可:
private static int solution(int a, int b, int c, int d) { int[] arr = new int[]{a, b, c, d}; Arrays.sort(arr); int mid = arr[2]; int res = 0; for (int i = 0; i < 4; i++) { re***ath.abs(arr[i] - mid); } return res; }