fork(4) download
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. void doit(int N, int k, int m, int * sol, int K)
  6. {
  7. if (k == 0 && N == 0)
  8. {
  9. for(int i = 0; i < K; ++i)
  10. {
  11. printf("%d%c", sol[i], (i == K-1) ? '\n' : '+');
  12.  
  13. }
  14. }
  15. else if (N < 0 || m > N || k < 0) return;
  16. else
  17. {
  18. for(int i = m; i <= N; ++i)
  19. {
  20. sol[K-k] = i;
  21. doit(N-i,k-1,i+1,sol,K);
  22. }
  23. }
  24. }
  25.  
  26. int main(int argc, const char * argv[])
  27. {
  28. int N, k;
  29. scanf("%d %d",&N,&k);
  30.  
  31. int * sol = malloc(sizeof(int)*k);
  32. doit(N,k,1,sol,k);
  33.  
  34. }
  35.  
Success #stdin #stdout 0s 5424KB
stdin
25 5
stdout
1+2+3+4+15
1+2+3+5+14
1+2+3+6+13
1+2+3+7+12
1+2+3+8+11
1+2+3+9+10
1+2+4+5+13
1+2+4+6+12
1+2+4+7+11
1+2+4+8+10
1+2+5+6+11
1+2+5+7+10
1+2+5+8+9
1+2+6+7+9
1+3+4+5+12
1+3+4+6+11
1+3+4+7+10
1+3+4+8+9
1+3+5+6+10
1+3+5+7+9
1+3+6+7+8
1+4+5+6+9
1+4+5+7+8
2+3+4+5+11
2+3+4+6+10
2+3+4+7+9
2+3+5+6+9
2+3+5+7+8
2+4+5+6+8
3+4+5+6+7