Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Решите эту задачу на Python пожалуйста, чтобы было правильно на сайте acmp.ru

Шахзод Шахзод Ученик (111), на голосовании 6 месяцев назад
Вывести все представления натурального
числа N суммой натуральных чисел.
Перестановка слагаемых нового способа
представления не даѐт.
Входные данные
В первой строке находится единственное
число N. 2 <= N <= 40
Выходные данные
В каждой строке выводится одно из
представлений. В сумме слагаемые разделяются
знаком "+".

Примеры
входные данные
6
выходные данные
1+5
1+1+4
1+1+1+3
1+1+1+1+2
1+1+1+1+1+1
1+1+2+2
1+2+3
2+4
2+2+2
3+3
Голосование за лучший ответ
sanvas Знаток (491) 7 месяцев назад
def generate_sum_representations(n, current_sum, current_rep):
if current_sum == n:
print('+'.join(map(str, current_rep)))
return
for i in range(1, n - current_sum + 1):
if not current_rep or i >= current_rep[-1]:
generate_sum_representations(n, current_sum + i, current_rep + [i])

def main():
N = int(input())
generate_sum_representations(N, 0, [])

if __name__ == "__main__":
main()
Похожие вопросы