Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2011, 15:37   #1
Rad-X
Пользователь
 
Регистрация: 13.02.2011
Сообщений: 14
По умолчанию Задача на комбинаторику

Задачка такая
Нужно написать программу, которая будет подсчитывать кол-во способов, которыми данное число можно представить в виде суммы шести чисел от 1 до 6.
К примеру
7=1+1+1+1+1+2
7=1+1+1+1+2+1
и т.д.
Получается - 7 способов.

Пробовал циклами с рандомом, проблема такая: не могу найти место где цикл остановился бы или способы не повторялись.

Может кто знает комбинаторику и знает какую-нибудь формулу?)
Rad-X вне форума Ответить с цитированием
Старый 13.02.2011, 17:18   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Получается - 7 способов.

шесть вобще-то.

Код:
{$APPTYPE CONSOLE}

program
  Project1;

const
  N  = 7;

var
  i1, i2, i3, i4, i5, i6: integer;
  count: integer;
begin
  count := 0;
  for i1 := 1 to 6 do
  for i2 := 1 to 6 do
  for i3 := 1 to 6 do
  for i4 := 1 to 6 do
  for i5 := 1 to 6 do
  for i6 := 1 to 6 do
    if (N = i1 + i2 + i3 + i4 + i5 + i6) then begin
      //
      WriteLn(N, ' = ', i1, ' + ', i2, ' + ', i3, ' + ', i4, ' + ', i5, ' + ', i6);
      inc(count);
    end;
  //
  WriteLn('Count=', count);
end.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача ksandrj Помощь студентам 0 23.09.2010 14:29
помогите с задачей на комбинаторику Alex26RusLink Помощь студентам 5 27.10.2009 21:22
Задача marsius Помощь студентам 2 20.02.2009 20:12