Задание 3 Параграф 5.5 ГДЗ Босова 8 класс 2023 (Информатика)
k = 1
f = 0
while k < n:
f = f * k
k += 1
Обсудите этот фрагмент программы в группе. Найдите ошибки. Внесите необходимые исправления, допишите программу и выполните её на компьютере. Для проверки правильности программы используйте тест:
Входные данные
Введите n > > 5
Введите n > > 6
Выходные данные
5!=120
6!=720
n=int(input(‘Введите n > > ‘))
k = 1; f = 1
while k < = n:
f = f * k
k +=1
print(n, '! = ', f)
Окно вывода:
Введите n > > 5
5! = 120
Введите n > > 6
6! = 720
В программе для вычисления факториала допущены ошибки:
- переменная $$f$$ должна начинаться с $$1$$, а не с $$0$$, иначе произведение всегда будет равно нулю;
- в цикле нужно умножать на все числа от $$1$$ до $$n$$ включительно, поэтому условие должно быть $$k \le n$$;
- ввод числа $$n$$ должен быть выполнен до использования переменной в цикле;
- в выводе нужно печатать значение $$n$$ и найденный факториал в нужном формате.
Исправленная программа:
n = int(input(‘Введите n >> ‘))
k = 1
f = 1
while k <= n:
f = f * k
k += 1
print(n, ‘!=’, f)
Проверка:
- при $$n = 5$$ получаем $$5! = 1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 = 120$$;
- при $$n = 6$$ получаем $$6! = 1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 \cdot 6 = 720$$.
Ответ
Исправленная программа:
n = int(input(‘Введите n >> ‘))
k = 1
f = 1
while k <= n:
f = f * k
k += 1
print(n, ‘!=’, f)