В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
daniilostroymov
daniilostroymov
13.10.2020 19:55 •  Информатика

Даны целое число k (1< = k< = 150) и последовательность цифр , в которой выписаны подряд все трехзначные числа от 101 до 150. определить k-ю цифру, если известно, что: k — число, кратное трем; k — одно из чисел 1, 4, 7, ; k — одно из чисел 2, 5, 8, примечание величины строкового типа не использовать.

Показать ответ
Ответ:
nikitosgurbano
nikitosgurbano
08.10.2020 23:05

#Ruby 2


def getNumberByPosition(start_num, end_num, k, n = 3)

   # p [start_num, end_num, k, n]

   if not start_num.between?(10**(n - 1),10**n - 1) or not end_num.between?(10**(n - 1),10**n - 1) then return end

   s = ""

   for  i in start_num..end_num

       s += i.to_s()

   end

   number = start_num + (k-1) / n

   if number > end_num

       puts "Выход за пределы"

       return

   end

   # p number

   upper_limit = n + 1 - ((k % n == 0) ? n : k % n)

   number = number % (10**upper_limit)

   # p [number, 10**upper_limit, upper_limit]

   low_limit = upper_limit - 1

   number = number / (10**low_limit)

   # p [number, 10**low_limit, low_limit]

   puts "#{number} = #{s[k-1]}"

end

getNumberByPosition(101,150,20,3)

getNumberByPosition(101,150,21,3)

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота