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 [3]; for(int i=0;i<3;i++) { a[i]=cin.nextInt(); } Arrays.sort(a); if(a[0]+a[1]<=a[2])a[2]=a[2]-(a[2]-(a[0]+a[1]))-1; int out=0; out=a[0]+a[1]+a[2]; System.out.print(out); } }
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[3]; arr[0] = sc.nextInt(); arr[1] = sc.nextInt(); arr[2] = sc.nextInt(); Arrays.sort(arr); while (arr[2] >= arr[0] + arr[1]) { arr[2]--; } System.out.println(arr[0] + arr[1] + arr[2]); } }
这题就两边之和大于第三边,只要最小两个之和大于第三个即可。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int a[]=new int[3];
for(int i=0;i<3;i++){
a[i]=in.nextInt();
}
Arrays.sort(a);
int res=0;
//利用三角形两边之和大于第三边的性质
if(a[0]+a[1]>a[2])
res=a[0]+a[1]+a[2];
else
res=a[0]+a[1]+a[0]+a[1]-1;//第三边太大,
//将他变成比前两边之和小一点点就好
System.out.println(res);
}
}
import java.util.*;