11-三角形

题目

给定三条边,请你判断一下能不能组成一个三角形。

输入描述:输入包含多组数据,每组数据包含三个正整数a、b、c(1 ≤ a, b, c ≤ 10 ^ 100)。

输出描述:对应每一组数据,如果它们能组成一个三角形,则输出“Yes”;否则,输出“No”。

示例1

输入

1  2  3

2  2  2

输出

No

Yes


思路

两边之和大于第三边就可判断,需要注意的是输入描述,给定a,b,c范围较大,要选择合适的数据类型。

此题推荐double类型,double类型数据范围±1.7×10^308,可覆盖大部分数据问题;

也可用BigDecimal数据类型,两者精度要求不同,BigDecimal精度更高,但应用较难。


代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            double a = in.nextDouble();
            double b = in.nextDouble();
            double c = in.nextDouble();
            if(a + b > c && a + c > b && b + c > a) {
                System.out.println("Yes");
            } else {
                System.out.println("No");
            }
        }
    }
}
import java.util.*; 
import java.math.*;

public class Main { 
     public static void main(String[] args) { 
         Scanner sc = new Scanner(System.in);
         while(sc.hasNext()) { 
             BigDecimal a = sc.nextBigDecimal(); 
             BigDecimal b = sc.nextBigDecimal(); 
             BigDecimal c = sc.nextBigDecimal(); 
             if(a.add(b).compareTo(c) > 0 && a.add(c).compareTo(b) > 0 && b.add(c).compareTo(a) > 0) { 
                 System.out.println("Yes"); 
             } else {
                 System.out.println("No"); 
             } 
         } 
     } 
 }


 

你可能感兴趣的:(笔试刷题-编程题,java)