Advertisement
Guest User

Untitled

a guest
Jan 29th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. using System;
  2.  
  3. class GFG
  4. {
  5.  
  6.  
  7.  
  8. public static int j = 0;
  9.  
  10. static void printAllUniqueParts(int n,int []tab)
  11. {
  12. int[] p = new int[n];
  13. int k = 0;
  14. p[k] = n;
  15.  
  16. while (true)
  17. {
  18.  
  19. for (int i = 0; i < n; i++, j++)
  20. {
  21. if (p[i] != 0)
  22. {
  23. tab[j] = p[i];
  24. }
  25. }
  26. int rem_val = 0;
  27.  
  28. while (k >= 0 && p[k] == 1)
  29. {
  30. rem_val += p[k];
  31. k--;
  32.  
  33. }
  34. if (k < 0)
  35. return;
  36. p[k]--;
  37. rem_val++;
  38. while (rem_val > p[k])
  39. {
  40. p[k + 1] = p[k];
  41. rem_val = rem_val - p[k];
  42. k++;
  43. }
  44. p[k + 1] = rem_val;
  45. k++;
  46.  
  47. }
  48. }
  49.  
  50. // Driver program
  51. public static void Main()
  52. {
  53.  
  54. int []tab = new int[100];
  55. printAllUniqueParts(5, tab);
  56.  
  57. while (j >= 0)
  58. {
  59. if (tab[j] != 0)
  60. Console.Write(tab[j] + " ");
  61. else
  62. Console.WriteLine();
  63. j--;
  64.  
  65. }
  66. Console.WriteLine();
  67. Console.WriteLine();
  68. }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement