你有3个需要完成的任务,完成这3个任务是需要付出代价的。
首先,你可以不花任何代价的完成一个任务;然后,在完成了第i个任务之后,你可以花费|Ai - Aj|的代价完成第j个任务。|x|代表x的绝对值。
计算出完成所有任务的最小代价。
一行3个整数A1,A2,A3,每个数字之间用一个空格分隔。所有数字都是整数,并且在[1,100]范围内。
一个整数,代表最小的代价。
1 6 3
5
10 10 10
0
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] arr =new int[3]; for (int i = 0; i < 3; i++) { arr[i]=scanner.nextInt(); } Arrays.sort(arr); System.out.println(arr[2]-arr[0]); } }
第一种:
1.按题目要求求附近两个数的绝对值
2.用两个较小的绝对值相加就得最小代价
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int A1=sc.nextInt(); int A2=sc.nextInt(); int A3=sc.nextInt(); int B1,B2,B3; B1=Math.abs(A1-A2); B2=Math.abs(A2-A3); B3=Math.abs(A1-A3); int s; if(B1>=B2&&B1>=B3){ s=B2+B3; }else if(B2>=B1&&B2>=B3){ s=B1+B3; }else { s=B2+B1; } System.out.println(s); } }
第二种:
1.判断数是否为中间的数
2.用最大的减去最小的得到最小代价
importjava.util.*; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); intA1=sc.nextInt(); intA2=sc.nextInt(); intA3=sc.nextInt(); ints; if(A1>=A2&&A1=A3&&A1<=A2){ s=Math.abs(A3-A2); }else if(A2>=A1&&A2=A3){ s=Math.abs(A3-A1); }else { s=Math.abs(A1-A2);} System.out.println(s); } }