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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2013, 12:50   #1
MagAragorn
Пользователь
 
Регистрация: 22.04.2013
Сообщений: 25
По умолчанию Паскаль рекурсия: Требуется составить данное число суммами данных чисел.

Требуется составить данное число суммами данных чисел(вывести все варианты)
на ввод два числа: M и N
далее N чисел.Из них и нужно составить число М.
например ввод:
10 6
1 10 7 4 2 3
Вывод
10
7+3
7+2+1
4+3+2+1
Пожалуйста,очень надо,материал за 8 класс.
MagAragorn вне форума Ответить с цитированием
Старый 22.04.2013, 13:22   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, какие математические операции допускаются?
во-вторых, подобные задачи тут на форуме неоднократно решались. я лично писал универсальную программу перебора - только там допускались все математические знаки, скобки (для изменения приоритета операций) и объединений чисел. У Вас всё будет, конечно, намного проще..

в-третьих, Вы уверены, что такие задачи решают в 8-м классе?! Это, наверное, физико-математическая школа с уклоном в программирование?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.04.2013, 13:25   #3
MagAragorn
Пользователь
 
Регистрация: 22.04.2013
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
во-первых, какие математические операции допускаются?
во-вторых, подобные задачи тут на форуме неоднократно решались. я лично писал универсальную программу перебора - только там допускались все математические знаки, скобки (для изменения приоритета операций) и объединений чисел. У Вас всё будет, конечно, намного проще..

в-третьих, Вы уверены, что такие задачи решают в 8-м классе?! Это, наверное, физико-математическая школа с уклоном в программирование?!
1. Все.
2. Прошу тыкнуть меня в тему)
3. Обычная гимназия.Это спецкурс.

И как инвариацию этой задачи прошу написать такую жеп задачу,только N= 3 и требуются все варианты, чтобы подряд два одинаковых числа не шли.
MagAragorn вне форума Ответить с цитированием
Старый 22.04.2013, 13:51   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от MagAragorn Посмотреть сообщение
1. Все.
вот с этим в противоречие не вступает?!
Цитата:
суммами данных чисел

Цитата:
Сообщение от MagAragorn Посмотреть сообщение
2. Прошу тыкнуть меня в тему)
не нашли?
вот же она:
Арифметические действия с цифрами числа

Цитата:
Сообщение от MagAragorn Посмотреть сообщение
3. Обычная гимназия.Это спецкурс.
круто. так тем более надо пытаться самостоятельно решить, раз у вас там такие высокие требования!


Цитата:
Сообщение от MagAragorn Посмотреть сообщение
И как инвариацию этой задачи прошу написать такую жеп задачу,только N= 3 и требуются все варианты, чтобы подряд два одинаковых числа не шли.
не понял.. поясните на примере..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.04.2013, 19:35   #5
MagAragorn
Пользователь
 
Регистрация: 22.04.2013
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
вот с этим в противоречие не вступает?!




не нашли?
вот же она:
Арифметические действия с цифрами числа


круто. так тем более надо пытаться самостоятельно решить, раз у вас там такие высокие требования!



не понял.. поясните на примере..
Например есть число 3. и есть три числа:1,2,3
Требуется посчитать количество вариантов, с которыми можно составить сумму чисел,Например
1 2
2 1
3
Но здесь одна загвоздка, если ввод будет 3 1 1 1,
то каждая единица-уникальная цифра,тоесть вариантов расстановки будет 6
MagAragorn вне форума Ответить с цитированием
Старый 22.04.2013, 21:21   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Т.к. что такое стэк я знаю очень относительно.. поэтому решил написать свой вариант.. Писал на коленке.. Возможно в ближайшем будущем что-то исправлю..
Код:
type
        TSol = array [1..100] of Integer;

var
        n, m : Integer;
        a : array [1..100] of Integer;
procedure Solution (cnt, sum : Integer; b : TSol);
var
        i : Integer;
begin
        if sum = n then  begin
                for i := 1 to cnt do
                        if b[i] <> 0 then
                                Write (b[i], '+');
                WriteLn(#8, ' = ', n)
        end;


        if cnt > m then
                Exit;

        for i := cnt+1 to m do begin
                b[i] := a[i];
                Solution (i, sum + a[i], b);
                b[i] := 0
        end;

end;

var
        b : TSol;
        i : Integer;

begin
        ReadLn (n, m);

        for i := 1 to m do
                Read (a[i]);

        for i := 1 to m do begin
                b[i] := a[i];
                Solution (i, a[i], b);
                b[i] := 0
        end
end.
Внимание!! "Загвоздка" пока не решена.. (там надо что-то придумывать с b[cnt] и a[i].. если освобожусь, то попытаюсь решить..)
Poma][a вне форума Ответить с цитированием
Старый 23.04.2013, 04:02   #7
MagAragorn
Пользователь
 
Регистрация: 22.04.2013
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Т.к. что такое стэк я знаю очень относительно.. поэтому решил написать свой вариант.. Писал на коленке.. Возможно в ближайшем будущем что-то исправлю..
...
Внимание!! "Загвоздка" пока не решена.. (там надо что-то придумывать с b[cnt] и a[i].. если освобожусь, то попытаюсь решить..)
Спасиибо,и загвоздка с 1 2 и 2 1, помогите ее решить,а я попытаюсь с рекордом порешать загвоздку с одинаковыми цифрами.

__________________
Оверквотинг (overquoting) на форуме запрещён.
Не злоупотребляйте избыточным цитированием.
Если Вы отвечаете на предыдущее сообщение, нет необходимости приводить его полностью в своем ответе.
В крайнем случае выберите нужный фрагмент и процитируйте его.
Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.04.2013 в 09:02.
MagAragorn вне форума Ответить с цитированием
Старый 23.04.2013, 09:06   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

всё равно не понимаю насчёт повтора чисел.
вот задание
Цитата:
на ввод два числа: M и N
далее N чисел.Из них и нужно составить число М.
допустим,
число M = 6
дано 9 чисел: 1 1 2 2 2 2 3 3 3
сколько вариантов есть решения задачи и какие они?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.04.2013, 14:18   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
всё равно не понимаю насчёт повтора чисел.
Ну смотрите, дано число 4 и числа 1 2 3
Программа должна вывести
1 3
3 1

НО она не имеет права выводить
1 1 1 1
или
2 2
или 1 1 2

Но если будет надо
4 и 2 2
То программа может(и должна) вывести 2 2
Poma][a вне форума Ответить с цитированием
Старый 23.04.2013, 15:18   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Рома, если нам даны числа 1 2 3, понятно, что программа не может выводить 2 + 2

Но! А если нам даны числа 1 2 2 3 (т.е. ДВЕ двойки даны в исходных числах), почему мы не имеем права вывести 2+2 ?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данное натуральное число N. Используя только элементарные арифметические операции (+, -, *, /) SystemsS Visual C++ 0 06.02.2013 12:43
Данное натуральное число N и действительные, не равны нулю числа a1, ., aN SystemsS Visual C++ 0 06.02.2013 12:42
Дано n вещественных чисел а1, а2,…,аn. Определите число соседств двух чисел разного знака (Паскаль) bambam Помощь студентам 1 29.11.2011 11:36
Определить является ли данное число совершенным.. Паскаль. Karabas Помощь студентам 6 23.12.2008 21:53
Из двух натуральных чисел, составить наибольшее число, сохраняя первоначальную последовательность.Паскаль Omedus Помощь студентам 8 19.11.2007 22:02