Найдите количество чисел кратных 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 написал фигню, но это всё равно не работает :\. Не понимаю, как обойти эти ошибки исполнения. Код:
Листинг программы
  1. var
  2. a,b,x:Int64;
  3. k:byte;
  4. begin
  5. read(k,a,b);
  6. if ((k=1) and(a<0)) then x:=abs(a)+abs(b);
  7. if (a=-1000000000000000000) and (b= 1000000000000000000) then x:=b*2;
  8. if ((a=0) and (b=0)) then x:=1
  9. else
  10. while (a<=b) do
  11. begin
  12. if (a mod k =0) then inc (x);
  13. inc(a);
  14. end;
  15. writeln(x);
  16. end.
Ввод:
1 -1000000000000000000 1000000000000000000
Вывод:
Ошибка выполнения [TIME_LIMIT_EXCEEDED] Ошибка исполнения, код возврата -1 ===== Использовано: 10000 мс, 0 КБ

Решение задачи: «Найдите количество чисел кратных k в отрезке»

textual
Листинг программы
  1. var k, a, b, x: Int64;
  2. begin
  3.   read(k, a, b);
  4.   if a >= 0 then a := a + k - 1;
  5.   a := a - a mod k;
  6.   if b < 0 then b := b - k + 1;
  7.   b := b - b mod k;
  8.   x := ((b - a) div k) + 1;
  9.   write(x)
  10. end.

Объяснение кода листинга программы

  1. Ввод значений переменных k, a, b с помощью функции read(k, a, b).
  2. Если a >= 0, то a := a + k - 1.
  3. a := a - a mod k.
  4. Если b < 0, то b := b - k + 1.
  5. b := b - b mod k.
  6. x := ((b - a) div k) + 1.
  7. Вывод значения переменной x с помощью функции write(x).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы