0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 12
|
||||||
1 | ||||||
Перечислить все разбиения натурального числа на натуральные слагаемые28.10.2014, 22:04. Показов 4802. Ответов 13
Метки нет (Все метки)
у меня есть код, но он работает неправильно. Я так понимаю, что где-то надо сделать рекурсию, помогите пожалуйста, разобраться.
0
|
28.10.2014, 22:04 | |
Ответы с готовыми решениями:
13
Перечислить все разбиения целого положительного числа на слагаемые Перечислить все разбиения целого положительного числа N на целые положительные слагаемые Перечислить все натуральные числа, не превосходящие заданного N Перечислить все натуральные числа не превосходящие заданного N |
61 / 61 / 24
Регистрация: 28.09.2012
Сообщений: 378
|
||||||
28.10.2014, 22:14 | 2 | |||||
daniel33,
0
|
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 12
|
|
28.10.2014, 22:18 [ТС] | 3 |
код не работает.
у меня задача: вводится число, например, 4. На выходе должно получиться: 1 1 1 1, 1 1 2, 1 3, 2 2, 4 ну или в другом порядке
0
|
61 / 61 / 24
Регистрация: 28.09.2012
Сообщений: 378
|
|
28.10.2014, 23:26 | 5 |
Байт, это я уже понял
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
||||||
28.10.2014, 23:32 | 6 | |||||
Вот что-то в этом роде
0
|
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 12
|
|
28.10.2014, 23:43 [ТС] | 7 |
она зациклена и выдает 2686924, по всей видимости, просто мусор какой-то
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
||||||
29.10.2014, 00:03 | 8 | |||||
в строчке 8 моя ошибка. Надо
Добавлено через 11 минут Заметил, что прожка моя не хороша. Даже если код соответствует моим мыслям, она должна выдать и 1 1 2 и 2 1 1, что, видимо, не то, что хотелось бы. Надо бы, чтоб выполнялось еще условие не убывания слагаемых. Но тут ты что-то должен сделать и сам.
0
|
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 12
|
|
29.10.2014, 11:37 [ТС] | 9 |
программа не работает для 3, то есть выдает 3. Для 4 выдает 1+3 и 4.
для 5: 1+1+3, 1+4, 2+3, 5 то есть нет разбиения на единицы и на 1 + 2 начинается с 3 Добавлено через 23 минуты я сделал вручную через while для 1 и для 2 Добавлено через 9 минут до 6 включительно работает верно,начиная с 7 пишет в разбиении, в частности, 2+3, 2+1+3, что является разложением 6
0
|
30.10.2014, 04:51 | 10 | |||||
Сообщение было отмечено Байт как решение
Решение
Рекурсия - страшная сила. После безуспешных попыток написать хоть что-то на функциональных языках, подобные вещи на С пишутся гораздо легче
1
|
Байт
|
30.10.2014, 22:36
#11
|
Не по теме: daniel33, _Ivana, Вы меня раздразнили. Завтра поговорим.
0
|
_Ivana
|
30.10.2014, 22:45
#12
|
Не по теме: Конечно поговорим :) У меня до завтра чуть больше часа осталось, но я планирую сидеть в инете как обычно до 3 ночи :)
0
|
01.11.2014, 00:50 | 13 |
Байт, разговор получился кратким - сухое спасибо как признание моего кода Но я предлагаю продолжить общение - например, приглашаю вас в эту мою тему: Победить модификацию Фарроу для оптимизации расчета коэффициентов полинома Смею надеяться, что вам это может показаться интересным
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
01.11.2014, 08:15 | 14 |
Увы! Я все пытался обойтись без накапливающей вывод строки, но никак не получалось, видимо, не с той лапы стал. По поводу вашего кода -
И все мои попытки упирались в нечто, напоминающее ваш код. Так что я это дело бросил и занялся текущими делами.
0
|
01.11.2014, 08:15 | |
01.11.2014, 08:15 | |
Помогаю со студенческими работами здесь
14
Перечислить все натуральные числа, не превосходящие заданного N Перечислить все натуральные числа, не превосходящие заданного N Перечислить все натуральные числа, не превосходящие заданного N Вывести все "интересные" разбиения числа на слагаемые Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |