
Дано 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;
}
}



Задача
Дано количество троек чисел, а затем вводятся сами тройки чисел. Необходимо выяснить, какое количество троек чисел могут являться сторонами равнобедренного треугольника. Подсказка: в прямоугольном треугольнике две стороны должны быть равными. Также необходимо убедиться, что треугольник существует. В треугольнике любая сторона должна быть меньше суммы двух других сторон. Задачу нужно решить двумя способами: с использованием массива и без использования массива.Решение с использованием массива
Начнем с создания массива для хранения троек чисел. Затем будем проверять каждую тройку чисел на соответствие условиям равнобедренного треугольника.1. Создадим массив для хранения троек чисел. 2. Вводим количество троек чисел. 3. В цикле заполняем массив тройками чисел. 4. В цикле проходим по каждой тройке чисел и проверяем условие равнобедренного треугольника. - Проверяем, что первое и второе число равны, или первое и третье число равны, или второе и третье число равны. - Проверяем, что треугольник существует, то есть любая сторона должна быть меньше суммы двух других сторон. - Если условия выполняются, увеличиваем счетчик равнобедренных треугольников. 5. Выводим количество найденных равнобедренных треугольников.
Решение без использования массива
В этом случае необходимо провести проверки на равнобедренность и существование треугольника непосредственно при вводе каждой тройки чисел.1. Вводим количество троек чисел. 2. В цикле запрашиваем тройку чисел и проверяем условие равнобедренного треугольника. - Проверяем, что первое и второе число равны, или первое и третье число равны, или второе и третье число равны. - Проверяем, что треугольник существует, то есть любая сторона должна быть меньше суммы двух других сторон. - Если условия выполняются, увеличиваем счетчик равнобедренных треугольников. 3. Выводим количество найденных равнобедренных треугольников.
Пример решения на Python с использованием массива
```python n = int(input("Введите количество троек чисел: ")) triangles = []for i in range(n): numbers = list(map(int, input("Введите тройку чисел через пробел: ").split())) triangles.append(numbers)
count = 0
for triangle in triangles: if (triangle[0] == triangle[1] or triangle[0] == triangle[2] or triangle[1] == triangle[2]) and \ (triangle[0] + triangle[1] > triangle[2] and triangle[0] + triangle[2] > triangle[1] and triangle[1] + triangle[2] > triangle[0]): count += 1
print("Количество равнобедренных треугольников:", count) ```
Пример решения на Python без использования массива
```python n = int(input("Введите количество троек чисел: ")) count = 0for i in range(n): a, b, c = map(int, input("Введите тройку чисел через пробел: ").split()) if (a == b or a == c or b == c) and (a + b > c and a + c > b and b + c > a): count += 1
print("Количество равнобедренных треугольников:", count) ```
Оба решения дают одинаковый результат и позволяют определить количество троек чисел, которые могут являться сторонами равнобедренного треугольника.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili