Задача: Числа [latex]a, b, c[/latex] тогда и только тогда являются сторонами треугольника, когда существуют такие положительные [latex]x, y, z[/latex], что:
[latex]\begin{cases}& \text{ } a=x+y \\& \text{ } b=y+z \\& \text{ } c=x+z\end{cases}[/latex]
[latex]a[/latex] | [latex]b[/latex] | [latex]c[/latex] | [latex]x[/latex] | [latex]y[/latex] | [latex]z[/latex] | Комментарий |
10 | 5 | 7 | 6 | 4 | 1 | Выполняется |
3.5 | 6.8 | 4 | 0.35 | 3.15 | 3.65 | Выполняется |
-5 | 7 | 3 | — | — | — | Не треугольник |
17 | 4 | 8 | — | — | — | Не треугольник |
C++:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <stdio.h> int main(void) { double a, b, c, x, y, z; printf ("Введите длины сторон треугольника.\n"); scanf ("%lf %lf %lf\n", &a, &b, &c); if ((a>0) && (b>0) && (c>0) && (a+b>c) && (b+c>a) && (a+c>b)) { y=(a+b-c)/2; x=a-y; z=b-y; printf("x=%lf, y=%lf, z=%lf\n", x, y, z); } else { printf ("Не является треугольником.\n"); } return 0; } |
Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) { Scanner in = new Scanner(System.in); double a, b, c, x, y, z; System.out.println("Введите длины сторон треугольника."); a = in.nextDouble(); b = in.nextDouble(); c = in.nextDouble(); if ((a>0) && (b>0) && (c>0) && (a+b>c) && (b+c>a) && (a+c>b)) { y=(a+b-c)/2; x=a-y; z=b-y; System.out.println("x="+x+"; y="+y+"; z="+z); } else { System.out.println("Не является треугольником.\n"); } } } |
Для всех переменных ( [latex]a, b, c[/latex] — даны по условию, [latex]x, y, z[/latex] — нужно найти) я использовала тип данных double, так как числа могут быть вещественными.
[latex]a, b, c[/latex] — стороны треугольника, поэтому они не могут быть отрицательными. И по соотношениям между сторонами треугольника каждая сторона меньше суммы двух других сторон. В противном случае [latex]a, b, c[/latex] не являются сторонами треугольника.Чтобы получить значения [latex]x, y, z[/latex], решаем систему, данную в условии. Из первого уравнения: [latex]x=a-y[/latex]. Из второго: [latex]z=b-y[/latex]. Подставляем [latex]x=a-y[/latex] и [latex]z=b-y[/latex] в третье уравнение: [latex]c=a+b-2\cdot y[/latex]. Находим [latex]y=\frac{a+b-c}{2}[/latex], [latex]x=a-y[/latex], [latex]z=b-y[/latex].
Точка в конце названия не ставится. Брейки не работают в формулах. Нужно убрать их.
Исправила.
Как Вы решили систему? Опишите кратко, пожалуйста. В таблице тестов у Вас почему-то только значения x, y, z, но нет значений a,b,c.
Задача какая-то нечетко сформулированная, но «тогда и только тогда » вроде как предполагает проверку обоих случаев, т.е. если не треугольник, не должно существовать положительных x, y, z.
Спасибо за исправления. Дописала как решается система и добавила в тесты значения a, b, c.
Засчитано, 10 баллов.
Java версия засчитана, 10 баллов.