Форум программистов, компьютерный форум, киберфорум
Наши страницы
Ruby
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Rubyman
1 / 1 / 0
Регистрация: 31.10.2012
Сообщений: 39
1

Найдите сумму чисел от 1 до n, которые кратны 17 и 19

02.11.2012, 23:16. Просмотров 1136. Ответов 3
Метки нет (Все метки)

Hello, world!)
Задание: Найдите сумму чисел от 1 до n, которые кратны 17 и 19

Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def mult(n)
  i, sum = 1, 0
  while i <= n
    if i%17==0 or i%19==0
      sum += i
    end
    i += 1
  end
  sum
end
 
puts "Vvedite n =>"
n = gets.chomp.to_i
 
puts "#{mult(n)} - summa chisel, kotorie kratni 17 ili 19"
Программа работает правильно, однако медленно
Подскажите, что сделать, чтобы увеличить ее временную эффективность.

Спасибо

Добавлено через 3 минуты
Можно, конечно счетчик поставить с 17, хотя это мало, что даст
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2012, 23:16
Ответы с готовыми решениями:

Вывести сумму тех элементов которые кратны 5. Найдите ошибку в коде
Дан массив из 15 элементов. Мне нужно вывести сумму тех элементов которые...

Дано 100 целых чисел, которые вводятся по одному. Получите сумму тех из них, которые кратны 5
Пусть дано 100 целых чисел, которые вводятся по одному. Получите сумму тех из...

Определить: сумму чисел, которые не кратны 9
Дана числовая последовательность целых чисел, оканчивающаяся нулем элементов....

Определить: сумму чисел, которые не кратны 9
Дана числовая последовательность целых чисел, оканчивающаяся нулем элементов....

Найти сумму чисел массива, которые не кратны 3
РЕбят помогите найти ошибку. НАда составить программу которая находит сумму...

3
Rikkit
61 / 58 / 12
Регистрация: 15.06.2012
Сообщений: 149
03.11.2012, 09:27 2
У меня до миллиона считает мгновенно. Какой именно размер n вам нужно, что бы быстро считался.
0
arni
907 / 872 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
03.11.2012, 09:56 3
Ruby
1
2
3
4
puts "Enter the limit: "
limit, sum = gets.to_i, 0
19.step(limit, 19) { |i| sum += i if i%17==0 }
puts "Sum is #{sum}"
Добавлено через 2 минуты
упс. я видимо неправильно понял условие задачи

Добавлено через 7 минут
Наверное надо так, если условие стоит как "или"
Ruby
1
2
3
4
5
puts "Enter the limit: "
limit, nums = gets.to_i, []
17.step(limit, 17) { |i| nums << i }
19.step(limit, 19) { |i| nums << i }
puts "Sum is #{nums.uniq.inject(0){ |sum, i| sum+=i }}"
1
Rikkit
61 / 58 / 12
Регистрация: 15.06.2012
Сообщений: 149
03.11.2012, 10:34 4
Мой вариант:
Ruby
1
2
3
4
5
6
7
8
9
10
11
def mult(n)
    sum = 0
    17.step(n, 17) { |i| sum += i }
    19.step(n, 19) { |i| sum += i }
    (17*19).step(n, 17*19) {|i| sum -= i }
    sum
end
 
print "Vvedite n => "
n = gets.chomp.to_i
puts "#{mult(n)} - summa chisel, kotorie kratni 17 ili 19"
Вариант автора вычислял предел 10000000 3 секунды, вариант arni 4 секунды + много памяти подмассив, мой вариант 1 секунду.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2012, 10:34

Для чисел от 30 до 50 найти сумму тех, которые кратны 5
для чисел от 30 до 50 найти сумму тех, которые кратны 5

Найти сумму тех чисел, которые кратны трем и больше 5
1.даны четыре целых числа.Найти сумму тех из них,которые кратны трем и больше...

Получить сумму тех чисел данной последовательности, которые кратны 5
Даны целые числа а1,…,а50. Получить сумму тех чисел данной последова-тельности,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru