Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
задача "Скамейка"
Помогите решить, пожалуйста, задачу. ОЧЕНЬ, ОЧЕНЬ НУЖНО. Please!!!!!!!!!!!!!!!!!!!!!!!!!
Петя и Маша любят с друзьями посидеть на скамейке и поболтать. У них есть любимая скамейка, которая вмещает их всех. Но Петя с Машей хотят сидеть рядом. Помогите им посчитать, сколько вариантов расположения друзей на скамейке существует, если Петя с Машей будут сидеть рядом друг с другом.
Входные данные: Входной файл содержит одно число N — количество человек, которые любят сидеть на скамейке, включая Петю и Машу (2<N< 13).
Выходные данные: В выходной файл нужно вывести одно целое число — количество вариантов расположения друзей на скамейке.

Пример:

input.txt output. txt
4 12

где имя входного файла input.txt
выходного файла output. txt

1 | Автор: anel85 | 2010-10-14, 14:51   |  Репутация: [ + 0 ]
1 | Автор: anel85 | 2010-10-14, 14:51   |  Репутация: [ + 0 ]
Если я не ошибаюсь искомая формула : 2*(N-1)!

Возьмем пару Маша+Петя, за одного человека, тогда всего людей будет N-1, а способов расположения будет (N-1)!
Однако внутри своеё пару Маша и Петя могут менятся местами, т.е. количество вариантов увеличивается в два раза, а если точнее 2!.

фот функция вычисления факториала без рекурсии.

Code

function fact(a:integer): longint;
var
    rez: longint;
    i: integer;
begin
   rez := 1;
   if a>1 then
    for i := 1 to a do
      rez := rez * i;
   fact := rez;
end;
2 | Автор: Fireleo | 2010-10-15, 05:29 | Изменено: Fireleo - Пт, 2010-10-15, 05:30   |  Репутация: [ + 30 ]
2 | Автор: Fireleo | 2010-10-15, 05:29 | Изменено: Fireleo - Пт, 2010-10-15, 05:30   |  Репутация: [ + 30 ]
  • Страница 1 из 1
  • 1
Поиск: