#include void find_partitions(int n, int start, int* path, int len) { int i; if (n == 0) { printf("7="); for (i = 0; i < len - 1; i++) { printf("%d+", path[i]); } printf("%d\n", path[len - 1]); return; } for (i = start; i <= n; i++) { path[len] = i; find_partitions(n - i, i, path, len + 1); } } int main() { int n; scanf("%d", &n); int path[30]; find_partitions(n, 1, path, 0); return 0; }