Автор Тема: Число полных и неполных сотен  (Прочитано 3324 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Число полных и неполных сотен
« : 28 Февраля 2002, 23:41:27 »
Помогите с элементарной задачкой.

Нужно определить число полных и неполных сотен в числе.
Делаю так:

my $int=ЧИСЛО;
$int/=100;
$int=($int==int($int))?$int:(int($int)+1); # округление "вверх"

Что-то мне подсказывает, что все должно быть проще...
« Последнее редактирование: 01 Марта 2002, 22:30:20 от NAS »
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Странно!
« Ответ #1 : 01 Марта 2002, 22:24:53 »
Думал, что хотя бы Chs найдет, что здесь оптимизировать.
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Число полных и неполных сотен
« Ответ #2 : 04 Марта 2002, 10:44:14 »
Цитировать
Думал, что хотя бы Chs найдет, что здесь оптимизировать.

:) А самому поискать - не ищеться?
perldoc -q ceil


use POSIX qw(ceil);
$int = ceil($int/100);
2B OR NOT 2B = FF

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Число полных и неполных сотен
« Ответ #3 : 04 Марта 2002, 15:57:35 »
Зачем же так строго?! :) Просто до этого упоминание "ceil" нигде не встречал, вот и не знал, что искать.

Но, все равно, спасибо!
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Придумал альтернативу!
« Ответ #4 : 17 Марта 2002, 02:26:24 »
Было:

my $int=ЧИСЛО;
$int/=100;
$int=($int==int($int))?$int:(int($int)+1); # округление "вверх"

Альтернатива:

my $int=ЧИСЛО;
$int=int($int/100)+(($int%100)?1:0);

По скорости, видимо, то же самое, но немного компактнее - мелочь, а приятно.
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Число полных и неполных сотен
« Ответ #5 : 18 Марта 2002, 10:13:57 »
Цитировать
По скорости, видимо, то же самое...

Второй вариант быстрее.
2B OR NOT 2B = FF

 

Sitemap 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 26 27 28