算法成长之路------CF6A Triangle

学习目标:算法学习-Day8

题库: 洛谷题库
每天保持发布一篇Java或C算法题解!

题目
给定 4 根木棍的长度,如果它们中存在 3 根木棍可以组成三角形,输出 TRIANGLE ;如果它们无法组成三角形,但是它们中存在 3 根木棍可以组成退化的三角形(任意两边之和大于等于第三边,但是不是三角形),输出 SEGMENT ;否则,输出 IMPOSSIBLE 。

注意: 木棍不能折断,也不能只用一部分长度。

输入格式:
一行 4 个整数,44 根木棍的长度。

输出格式:
如果它们中存在 3 根木棍可以组成三角形,输出 TRIANGLE ;如果它们无法组成三角形,但是它们中存在3根木棍可以组成退化的三角形,输出 SEGMENT ;否则,输出 IMPOSSIBLE。

样例 1 :

输入:
4 2 1 3


输出:


TRIANGLE
样例 2 :

输入:
7 2 2 4


输出:
SEGMENT


样例 3 :

输入:
3 5 9 1


输出:
IMPOSSIBLE


思路:

	题目有两种三角形,一种输出TRIANGLE,另一种输出SEGMENT。
	给了4根木棍,其中任意3根组成三角形。
	如果第一根木棍和第二根木棍的总长大于第四根,那么就一定大于第三根,
	所以只要判断第一根木棍和第二根木棍的总长与第三根的关系。
	同理,如果第一根木棍和第三根木棍的总长大于第四根,那么第二根木棍和第三根木棍的总长也一定大于第四根
	所以只要判断第二根木棍和第三根木棍的总长与第四根的关系。
	也就是说退化的三角形也一样判断。

习题总结及反思:

	Arrays类的sort()方法,用于排序。

代码如下:

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int [] n = new int [4];
		//循环输入4个整数
		for(int i = 0; i < n.length; i ++)
		{
			n[i] = input.nextInt();
		}
		//从小到大排序
		Arrays.sort(n);
		//输出排序后的数组
			/*for(int i = 0; i < n.length; i++)
			{
				System.out.printf(n[i]+" ");
			}*/
		
		/*思路:
		 *如果第一根木棍和第二根木棍的总长大于第四根,那么就一定大于第三根,
		 *所以只要判断第一根木棍和第二根木棍的总长与第三根的关系。
		 *同理,如果第一根木棍和第三根木棍的总长大于第四根,那么第二根木棍和第三根木棍的总长也一定大于第四根
		 *所以只要判断第二根木棍和第三根木棍的总长与第四根的关系。
		 *也就是说退化的三角形也一样判断。 
		 */
		
		//下面是判断规则,也就是上面的思路
		if(n[0]+n[1]>n[2] || n[1]+n[2]>n[3])
		{
			System.out.println("\nTRIANGLE");
		}
		else if(n[0]+n[1]==n[2] || n[1]+n[2]==n[3])
		{
			System.out.println("\nSEGMENT");
		}
		else
		{
			System.out.println("\nIMPOSSIBLE");
		}
	}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值