Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 05.05.2015
Сообщений: 60
1

Запись каждого найденного сложения трех или более элементов

16.09.2015, 08:09. Показов 585. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер. Столкнулся с такой проблемой: даны три переменные или более. Стоит ограничение ,допустим, 40.
Найти все различные способы сложения этих чисел(переменных).
Например:
a:=10;
b:=5;
c:=15;
max:=40;

1 способ - a+a+a+a;
2 способ - a+b+b+c+b;
и вывести эти способы..

И так далее.. Или же использовать одномерный массив. Думал делать через рекурсию, но не помню толком её. Прошу помощи, друзья.
P.S. С прошедшим Вас)

Добавлено через 11 часов 54 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
uses
  System.SysUtils;
    type Razb=array [byte] of byte;
    var N,i,L:byte;
    X:Razb;
    procedure Next(var X:Razb;var L:byte);
      var i,j:byte;
      s:word;
    begin
      i:=L-1;s:=X[L];
      {поиск i}
      while (i>1)and(X[i-1]<=X[i]) do begin s:=s+X[i];dec(i) end;
      inc(X[i]);
      L:=i+s-1;
      for j:=i+1 to L do X[j]:=1
    end;
  begin
    write('N=');readln(N);
    L:=N; for i:=1 to L do X[i]:=1;
    for i:=1 to L do write(X[i]);writeln;
    repeat
      Next(X,L);
      for i:=1 to L do write(X[i]);writeln
    until L=1
  end.


Вот что у меня получилось, но нужно чуть переделать. Чтобы оно искало сумму из тех чисел, которые введу я, а не все возможные варианты.
Пример:
N = 100
a=15
b=10
c=5


Добавлено через 23 часа 53 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
uses
  System.SysUtils;
 
type Sequence=array [byte] of byte;
      var M,N:byte;
          X:Sequence;
      procedure Generate(k:byte);
var i,j:byte;
      begin
        if k=N then
          begin for i:=1 to N do
        write(X[i]);
        writeln
        end
        else
          for j:=1 to M do
        begin
    X[k+1]:=j;
    Generate(k+1) end
    end;
    begin
      write('M,N=');readln(M,N);
 
      Generate(0);
    readln;
        end.

Или эту программу как можно переделать? Всё что ни пробовал, не выходит. Помогите, а)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2015, 08:09
Ответы с готовыми решениями:

Сколько подмножеств в множестве состоящих из трех или более элементов
Определить сколько существует подмножеств в множестве {a;b;c;d;e;f;g} состоящих из трех или более...

Дана символьная строка. Вывести на экран только те символы, которые встречаются в ней более трех раз, для каждого из эти
мне нужно срочно!!!! помоги чем сможете. С++ Добавлено через 19 секунд Вот задание Дана...

Одномерный массив, удаление элементов более трех
Доброго времени суток ув. форумчане! Подтолкните пожалуйста в решении задачи. Звучит следующим...

Что более вероятно: получить 12 или 11 очков при трёх бросаниях игральной кости?
Игральная кость бросается трижды. Пусть х — сумма очков, полученных при всех бросаниях. Что более...

0
16.09.2015, 08:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2015, 08:09
Помогаю со студенческими работами здесь

В матрице удалить строки, содержащие более трех отрицательных элементов
В матрице А удалить строки, содержащие более трех отрицательных элементов и вывести соответствующее...

Возврат более одного найденного значения без повторений
Добрый день! Не могу найти решение для следующей задачки: vlookup выдает только первое...

Выбрать все столбцы матрицы, содержащие более трех нулевых элементов
Написать программу для ввода и вывода матрицы размера k х n (k&lt;=20; n&lt;=25).выбрать все столбцы...

Определить количество вхождений в строку каждого из знаков, встречающихся в ней 1 или более раз
здравствуйте, уважаемые программисты. прошу вас помочь мне с задачей: &quot;определить количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru