Помощь - Поиск - Пользователи - Календарь
Полная версия: красивая задача
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
мисс_граффити
Есть три целочисленных переменных (a,b,c). Надо вывести на экран ту, значение которой минимально.
Фишка в том, что использовать циклы и условные операторы нельзя.

Формально ограничений на язык не накладывается, но обещали, что средств Паскаля хватит.
Главное - конструктивная идея.

Была мысль про исключения...
Ну допустим при a<b ln(a-b) будет фигней, а при a>b прекрасно обработается. Но этот вариант был принят условно. Говорят, существует решение совсем без условий....

У вас тут с мыслями порядок... может, придумается что......
volvo
мисс_граффити,
для 2-х чисел задача решается так:
var
a, b: integer;

begin
a := 10; b := 12;
writeln('min(a, b) = ',
(((((a-b)/abs(a-b)))*(-1)+abs(((a-b)/abs(a-b))))/2)*a +
(((((b-a)/abs(b-a)))*(-1)+abs(((b-a)/abs(b-a))))/2)*b
);
end.
Лениво сейчас то же самое добавлять еще раз... Просто присвой промежуточный результат в какую-то переменную, и проделай то же самое с ней и "С"... smile.gif
volvo
P.S. Кстати, упрощаем выражение:
мисс_граффити
супер!
с такой скоростью решил или знал?
Lapp
Вот мое решение (для трех чисел). В нем нет условных операторов, хотя есть сами условия. Впрочем, их тоже можно избежать..
const
a:integer=2;
b:integer=300;
c:integer=-10;

var
d:array[false..true]of integer;

begin
d[false]:=a;
d[true]:=b;
d[false]:=d[a>b];
d[true]:=c;
d[false]:=d[d[false]>c];
WriteLn(d[false]);
end.

Первое решение volvo не годится - там может возникнуть деление на ноль.
Второе - класс, очень красиво, respect! smile.gif
Почему-то я сразу стал думать в русле программирования, забыв про общую математику.. sad.gif

P.S.
volvo, не мог ли бы ты из некоторого сочувствия к другим как-то прикрывать решения подобных задач (скажем, цветом фона)? Мне повезло, что я сразу не скользнул взглядом по решению, успел отвернуться..
volvo
Цитата(lapp @ 13.05.2006 5:43)
volvo, не мог ли бы ты из некоторого сочувствия к другим как-то прикрывать решения подобных задач (скажем, цветом фона)?
Нет, я лучше буду присоединять решения отдельным файлом. Пока не захочешь - не увидишь smile.gif См. выше, исправлено... Пойдет?

А цвет фона может изменяться в зависимости от выбранного скина и браузера...
мисс_граффити
lapp, тоже красиво.
я уточню, можно ли с условиями с таком виде. думаю, что да: ведь никаких ветвлений нет, а ограничения были именно на них.
-----------
если интересно, могу иногда подобные задачи кидать.
то есть если вам самим в удовольствие, а не как 1725-й раз писать "пользуйтесь поиском".
Lapp
Цитата(мисс_граффити @ 13.05.2006 12:23) *

если интересно, могу иногда подобные задачи кидать.

Конечно, интересно. smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.