Добрый день!
Подскажите, как покороче запрограммировать такую задачу:Вывести все представления натурального числа М суммой натуральных чисел
Перестановка слагаемых нового способа представления не дает
Ограничения 2<M<40.Пример:
M = 5;
4+1
3+2
3+1+1
2+2+1
2+1+1+1
1+1+1+1+1
Попробуй отладить что-нибудь вроде:
void sums(int N, const char *prev) {
char string[MAX];for (int i=1; i< N/2; i++) {
printf("%i + %i %s", i, N-i, prev);sprintf(string, "+ %i\n", i); sums(N-i, string);
sprintf(string, "+ %i\n", N-i); sums(i, string);
sums(i, " + "); sums(N-i, "\n");
}
}
sums(N, "\n");
>Попробуй отладить что-нибудь вроде:
да, очень попахивает тем что нужно применять рекурсию....попробую..