Дано n - количество троек чисел. Затем вводятся сами тройки чисел, т.е. в каждой из n строк вводится по три натуральных числа. Выясните, какое количество троек чисел могут являться сторонами равнобедренного треугольника. Подсказка. В прямоугольном треугольнике две стороны должны быть равны. Не забудьте также проверить, а треугольник ли это, вообще. В треугольнике любая сторона меньше суммы двух других.
Решить двумя , массивом, без массива
Язык: Java
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n = input.nextInt();
ArrayList<PointHolder> data = new ArrayList<>();
System.out.println("Init for "+n);
for(int i =0;i<n;i++){
input = new Scanner(System.in);
String inp = input.nextLine();
System.out.println("Got: "+inp);
data.add(new PointHolder(new BigInteger(inp.split(" ")[0]),
new BigInteger(inp.split(" ")[1]),
new BigInteger(inp.split(" ")[2])));
}
for(PointHolder holder:data){
if(canExists(holder)){
System.out.println("Может существовать равнобедренный треугольник со сторонами: "+holder.one + " "+holder.two+" "+holder.three);
}
}
}
public static boolean canExists(PointHolder holder){
if(holder.one.equals(holder.two) || holder.one.equals(holder.three) || holder.two.equals(holder.three)){
long o = holder.one.longValue();
long t = holder.two.longValue();
long th = holder.three.longValue();
return (o<t+th) && (t < o+th) && (th < o+t);
}else{
return false;
}
}
}
class PointHolder{
BigInteger one;
BigInteger two;
BigInteger three;
PointHolder(BigInteger o,BigInteger t,BigInteger th){
one=o;
two=t;
three=th;
}
}