![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
The First Person!
Форумчанин
Регистрация: 07.08.2007
Сообщений: 228
|
![]()
Нужно написать рекурсивную функцию, которая представляет число N в виде M слагаемых. Все возможные варианты вывести на экран.
Я пока даже алгоритм себе не представляю. Натолкните на мысль, как решить, а уж с реализацией разберусь..
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
|
![]() |
![]() |
![]() |
#2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
![]()
Как-то так:
В цикле от 1 до N (пусть по i) первое слагаемое получаем как i*k, где k - от 0 и пока i*k<=N. Потом спускаемся рекурсивно. При этом передаем себе глубину, предыдущее значение i, текущую сумму и уже сформированную строку (сумму слагаемых). И то же самое. Условие выхода - достигли M или текущая сумма >N. Если достигли нужной глубины, проверяем сумму. Если она равна N, то выводим строку. Иначе просто выходим.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
![]() |
![]() |
![]() |
#3 |
The First Person!
Форумчанин
Регистрация: 07.08.2007
Сообщений: 228
|
![]()
Да, было бы неплохо!
![]()
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
|
![]() |
![]() |
![]() |
#4 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
![]()
Да я вот что-то поторопился ) Вернее, исходник есть (он на C++), но вот только не могу вспомнить, на сумму чего он раскладывает )
Код:
![]() Естественно, если вам на си нужно, то там все строковые операции переделать придется. Но, думаю, идею вы уловите.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
![]() |
![]() |
![]() |
#5 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
![]()
Вот оно. Все закомментил.
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 16.05.2009
Сообщений: 1
|
![]()
Не могу прогу написать с рекурсией, чтоб правильно функционировало (с возвратом значения,т.е. обнуление ). Дайте хотя бы ссылку,где похожее найти.
Пусть x1=x2=x3=1, xi=xi-1+xi-3, i=4,5... Найти сумму Е (от 1 до 100 или n) = xi/2^i. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рекурсия. | p@ul | Помощь студентам | 4 | 30.12.2009 14:46 |
си рекурсия | world12_tk | Помощь студентам | 1 | 10.04.2009 23:06 |
Рекурсия | Claster | Помощь студентам | 7 | 24.09.2008 20:52 |
Рекурсия | vitekbest | Помощь студентам | 1 | 30.05.2008 22:22 |
рекурсия | Vital_k | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 08.02.2008 13:09 |