Даны два целых положительных числа N и K (0 < N < 1000, 0 < K < N). Необходимо определить, является ли K наибольшим из чисел, для которых сумма 1+ 2+ · · ·+K ≤ N. Программа должна вывести или «Да», или «Нет» и найденное наибольшее из чисел, для которых сумма чисел 1+2+· · ·+K ≤ N.Программист написал программу неправильно.
Последовательно выполните следующее.
1. Напишите, что выведет программа при вводе чисел N = 10, k = 3.
2. Приведите пример таких чисел, для которых, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько).Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк.
Для каждой ошибки
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку,— приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в данной программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
1. При вводе чисел N = 10, k = 3 программа выведет Нет. k=5.
2. Пример входных чисел, для которых программа работает правильно: 7 и 4.
3. Программа содержит две строки с ошибками (Паскаль):
1) Строку
s:=s+k
следует заменить на
s:=s+t
2) Строку
writeln(’Нет. k=’, t)
следует заменить на
writeln(’Нет. k=’, t-1)