Найдите количество чисел кратных k в отрезке - Free Pascal
Формулировка задачи:
Задача
Найдите количество чисел кратных k в отрезке [a, b]. Другими словами, вам нужно найти количество целых чисел x таких, что a ≤ x ≤ b и x делится на k.Входные данные
В единственной строке входных данных находится три целых числа k, a, b (1 ≤ k ≤ 10^9; - 1018 ≤ a ≤ b ≤ 10^9).Выходные данные
Выведите ответ на задачу.Вопрос
Как пройти 57 тест программы?Никак не пойму.Я уже даже в строке #8 написал фигню, но это всё равно не работает :\. Не понимаю, как обойти эти ошибки исполнения. Код:var a,b,x:Int64; k:byte; begin read(k,a,b); if ((k=1) and(a<0)) then x:=abs(a)+abs(b); if (a=-1000000000000000000) and (b= 1000000000000000000) then x:=b*2; if ((a=0) and (b=0)) then x:=1 else while (a<=b) do begin if (a mod k =0) then inc (x); inc(a); end; writeln(x); end.
1 -1000000000000000000 1000000000000000000
Ошибка выполнения [TIME_LIMIT_EXCEEDED]
Ошибка исполнения, код возврата -1
=====
Использовано: 10000 мс, 0 КБ
Решение задачи: «Найдите количество чисел кратных k в отрезке»
textual
Листинг программы
var k, a, b, x: Int64; begin read(k, a, b); if a >= 0 then a := a + k - 1; a := a - a mod k; if b < 0 then b := b - k + 1; b := b - b mod k; x := ((b - a) div k) + 1; write(x) end.
Объяснение кода листинга программы
- Ввод значений переменных k, a, b с помощью функции read(k, a, b).
- Если a >= 0, то a := a + k - 1.
- a := a - a mod k.
- Если b < 0, то b := b - k + 1.
- b := b - b mod k.
- x := ((b - a) div k) + 1.
- Вывод значения переменной x с помощью функции write(x).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д