Даны целое число k (1amp;lt;= kamp;lt;= 150) и последовательность цифр101102103...149150, в
Даны целое число k (1lt;= klt;= 150) и последовательность цифр
101102103...149150, в которой выписаны попорядку все трехзначные числа от 101
до 150.
Найти k-ю цифру, если знаменито, что:
k число, кратное трем;
k одно из чисел 1, 4, 7, ...;
k одно из чисел 2, 5, 8, ...
Примечание
Величины строкового типа не использовать.
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 gt; 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)
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.