Какой лучший алгоритм для наименьшего ненулевого положительного значения из фиксированного числа (в данном случае 3) значений или возврата 0, если нет положительных вопросов?
Мой наивный подход ниже (в Delphi, но не стесняйтесь использовать все что угодно), но я думаю, что есть более элегантный способ.
value1Temp := MaxInt;
value2Temp := MaxInt;
value3Temp := MaxInt;
if ( value1T > 0) then
value1Temp := value1;
if ( value2 > 0) then
value2Temp := value2;
if ( value3 > 0) then
value3Temp := value3;
Result := Min(value1Temp, Min(value2Temp, value3Temp));
if Result = MaxInt then
Result := 0;
Редактировать: Извините, что нужно, если нет положительных чисел. Я думал, что у меня там было раньше, но, должно быть, пропустил это.