Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Можно ли улучшить эту маленькую програмку на Ruby? Пугает количетсво переменных 
:(
    Опции темы
tetroel
Дата 27.3.2012, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 27.3.2012

Репутация: нет
Всего: нет



 Задание такое
Даётся число N с клавиатуры, N может принимать значения до 9999 включительно
Нужно вычислить сумму ЦИФР от 1 до N
я написал так

меня пугает начилие стольких переменных

smile 
Код

class Integer
def digit_sum
to_s.split("").inject(0) { |sum, n| sum+n.to_i}
end
end
m=0
n=gets.to_i
for i in 1..n
m=m+i.digit_sum
end
puts m


Это сообщение отредактировал(а) tetroel - 27.3.2012, 13:32
PM MAIL   Вверх
WarHog
Дата 28.3.2012, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.10.2007
Где: Воронеж

Репутация: нет
Всего: 2



Можно так:

Код

class Integer
  def digit_sum
    self.to_s.split("").inject(0) { |sum, n| sum+n.to_i}
  end
end

n=gets.to_i
m = (1..n).inject { |sum, i| sum + i.digit_sum }  # т.к. идет с 1, а 1.digit_sum = 1, то можно убрать аргумент из inject-а
puts m

--------------------
PM MAIL   Вверх
GrayCardinal
Дата 31.3.2012, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: нет
Всего: 58



del

Это сообщение отредактировал(а) GrayCardinal - 31.3.2012, 18:16


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.