Вопрос:

7. Требовалось написать программу вычисления факториала числа n (факториал числа n – это произведение всех целых чисел от 1 до n). Программист торопился и написал программу неправильно. Ниже приведён фрагмент его программы, в котором содержатся три ошибки: k = 1 f = 0 while k < n: f = f * k k += 1 Найдите ошибки. Допишите необходимые операторы и выполните программу на компьютере. Пример входных данных Пример выходных данных Введите n>>5 5! = 120 Введите n>>6 6! = 720

Смотреть решения всех заданий с листа

Ответ:

Разберем код и найдем ошибки в программе вычисления факториала:

  1. Ошибка 1: Начальное значение факториала f должно быть равно 1, а не 0. Если f = 0, то при умножении на любое число результат всегда будет 0.
  2. Ошибка 2: В цикле while отсутствует увеличение переменной k. В предоставленном коде переменная k увеличивается через K+=1, где переменная K написана с большой буквы.
  3. Ошибка 3: Условие в цикле while k < n: не включает в себя число n. Чтобы вычислить факториал n, нужно чтобы последнее умножение было на n.

Исправленный код:


n = int(input("Введите n: "))
k = 1
f = 1
while k <= n:
    f = f * k
    k += 1
print(f)

Пример выполнения программы:

Для n = 5:

  1. n = 5, k = 1, f = 1
  2. Цикл 1: f = 1 * 1 = 1, k = 2
  3. Цикл 2: f = 1 * 2 = 2, k = 3
  4. Цикл 3: f = 2 * 3 = 6, k = 4
  5. Цикл 4: f = 6 * 4 = 24, k = 5
  6. Цикл 5: f = 24 * 5 = 120, k = 6
  7. Вывод: 120

Для n = 6:

  1. n = 6, k = 1, f = 1
  2. Цикл 1: f = 1 * 1 = 1, k = 2
  3. Цикл 2: f = 1 * 2 = 2, k = 3
  4. Цикл 3: f = 2 * 3 = 6, k = 4
  5. Цикл 4: f = 6 * 4 = 24, k = 5
  6. Цикл 5: f = 24 * 5 = 120, k = 6
  7. Цикл 6: f = 120 * 6 = 720, k = 7
  8. Вывод: 720
ГДЗ по фото 📸
Подать жалобу Правообладателю

Похожие