Помогите С Интересной Программой На Си)

Тема в разделе "C/C++/C#", создана пользователем Morgan8, 18 ноя 2014.

  1. Morgan8

    Morgan8 New Member

    Регистрация:
    18 ноя 2014
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте!Есть проблемы с написанием программы на языке СИ.
    Нужно написать программу ,которая вычисляет количество различных треугольников,которые могут быть собраны из лучей разной длины(вводим сами)

    При входе обязательно надо вводить длину лучей(и не обязательно этих лучей три ,может и больше,но Не меньше),при выходе обязательно выводить сколько треугольников можно составить.(Обязательно чтоб треугольники как например 3-4-5 и 5-4-3 считались идентичными)
    Также программа обязана определить неправильный ввод(и чтобы выводило ошибку и завершала работу).

    P.S.Это одна из первых моих программ,я догадываюсь как сделать ввод данных ,а с тем чтоб программа могла определить сколько треугольников выйдет у меня проблемы.Прошу помочь!Спасибо за внимание!
     
  2. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Если программу стоит делать без всяких оптимизаций, то первое, что приходит на ум - полный перебор. Выборка 3 чисел из него и проверка, могут ли быть они сторонами треугольника.
    Если могут, то, отсортировать в каком-либо порядке. Проверить массив уже найденных треугольников на наличие текущего. Если такого не найдётся - то добавить его в массив.
    Если стоит оптимизировать скорость работы программы, то, стоит ещё подумать, но как минимум из входных лучей можно выбросить те, которые повторяются больше трёх раз: 3 3 3 3 3 3 3 3 4 5 => 3 3 3 4 5
     
  3. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    согласен с Vadik®
    только я бы сортировал массив исходных значений,а потом выбирал бы перебором пару.И уже к ней при выполнении условий 3ую сторон.
    Такие тройки в список,которыйпо идее должен быть упорядочен,при таком добавлении.
     
Загрузка...

Поделиться этой страницей