Сложности решения задачи ''Страницы книги''

На каждой странице книги напечатано ровно k строк: на первой странице находятся строки с 1 по k, на второй — c k+1 по 2k и т.д. Определите, на какой странице находится строка номер n и какой по счёту будет эта строка на странице.

Даны натуральные числа k и n, каждое в отдельной строке. Программа должна считать их и вывести два числа: номер страницы и номер строки на странице. В задаче нельзя использовать массивы и условия. Вот мой код

    k = int(input())
    n = int(input())
    a = n//k
    b = n%k
    print(a, b)

Вводные данные: 50 100

Но получается, так что моя программа не учитывет последнюю 50 строку и переводит на новою страницу.


Ответы (2 шт):

Автор решения: Евгений

Но получается, так что моя программа не учитывет последнюю 50 строку и переводит на новою страницу.

Это логично, ведь 99//50 = 1, а 100//50 = 2. Чтобы решить эту проблему, вы можете прибегнуть к преобразованию:

k = int(input())
n = int(input())
a = (n-1) // k + 1 # если нумерация страниц с 1. Если нумерация с 0, то +1 нужно убрать
b = (n-1) % k + 1
print(a, b)
→ Ссылка
Автор решения: Сергей
k=int(input())
n=int(input())
st=-((-n)//k)
stroka=n-k*(st-1)
print(st,stroka)
→ Ссылка