Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Язык C Дано N целых чисел. Найдите наибольшее число, являющееся произведением трех из данных чисел. Сделать на С

Александр Боницкий Знаток (455), на голосовании 8 лет назад
Голосование за лучший ответ
user51942 Оракул (50658) 8 лет назад
тройным циклом перебрать все тройки самое то, но это если n не слишком большое, в пределах тысячи
extrnМыслитель (7128) 8 лет назад
n в пределах 1000 это уже до миллиарда комбинаций.
правильный вариант отсортировать массив и перемножить 3 его последних члена
даже если сортировать худшим из известных мне методов - пузырьком, сложность будет N^2 а не N^3
user51942 Оракул (50658) а если есть отрицательные?
Ivan Salauyou Гуру (2557) 8 лет назад
max= mas[0]*mas[1]*mas[2];
for(i=0;i<n; i++)
for (j=i;j<n; j++)
for(k=j;k<n;k++)
if (max<mas[i]*mas[j]*mas[k]) max=mas[i]*mas[j]*mas[k];
Александр БоницкийЗнаток (455) 8 лет назад
А можно код полностью?
Похожие вопросы