Другие языки программирования и технологии

Помогите составить блок схему. Данны целые числа n, k (n>=k>=0). Вычислить n(n-1)*(n-2)... (n-k-1)/k!

Вот блок-схема для вычисления n(n-1)*(n-2)... (n-k-1)/k!:
 Вход: целые числа n, k 
Выход: целое число

Начало

Установить переменную res = 1
Для i от k до 0
res = res * (n - i)
Конец цикла

Вывести res

Конец
Вот описание работы блок-схемы:

В начале блок-схемы объявляются две переменные: n и k. n - входное значение, а k - выходное значение.
Затем объявляется переменная res, которая будет хранить промежуточный результат.
Цикл for выполняется k раз. На каждой итерации цикла значение res умножается на (n - i). Это приводит к вычислению произведения n(n-1)*(n-2)... (n-k-1).
После того, как цикл завершается, значение res выводится на экран.
Вот еще один вариант блок-схемы, который использует рекурсию:
 Вход: целые числа n, k 
Выход: целое число

Начало

Если k = 0
return 1

else
return n * factorial(n - k - 1)

Конец
Вот описание работы блок-схемы:

Если k = 0, то функция возвращает 1. Это соответствует случаю, когда k = 0.
В противном случае функция возвращает n * factorial(n - k - 1). Это соответствует случаю, когда k > 0.
Функция factorial(n) вычисляет факториал числа n.
ЕТ
Ерлан Турманбетов
6 281
Лучший ответ
Павел Ошаров а вот по типу такого можешь сделать блоксхему?
 начало 
|
|--> ввод n, k
|
|--> если n >= k и k >= 0
| |
| |--> установить result = 1
| |
| |--> для i от 0 до k - 1
| | |
| | |--> result = result * (n - i)
| |
| |--> для i от 1 до k
| | |
| | |--> result = result / i
| |
| |--> вывод result
|
|--> иначе
| |
| |--> вывод "Неверные входные данные"
|
конец