Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9.  
  10. namespace WindowsFormsApplication1
  11. {
  12. public partial class Form1 : Form
  13. {
  14. int n;
  15. public Form1()
  16. {
  17. InitializeComponent();
  18. }
  19.  
  20. void init(int[] st, int k)
  21. {
  22. st[k] = 0;
  23. }
  24.  
  25. bool succesor(int[] st, int k)
  26. {
  27. if (st[k] < n)
  28. {
  29. st[k]++;
  30. return true;
  31. }
  32. return false;
  33. }
  34.  
  35. bool valid(int[] st, int k)
  36. {
  37. for (int i = 0; i < k; i++)
  38. if (st[i] >= st[k])
  39. return false;
  40. if (suma(st, k) > n)
  41. return false;
  42. return true;
  43. }
  44.  
  45. bool solutie(int []st,int k)
  46. {
  47. return suma(st,k)==n;
  48. }
  49.  
  50. int suma(int []st, int k)
  51. {
  52. int s=0;
  53. for(int i=0;i<=k;i++)
  54. s+=st[i];
  55. return s;
  56. }
  57.  
  58. void afisare(int[] st, int k)
  59. {
  60. for (int i = 0; i < k; i++)
  61. textBox2.AppendText(st[i].ToString()+"+");
  62. textBox2.AppendText(st[k].ToString()+"\r\n");
  63.  
  64. }
  65.  
  66. private void button1_Click(object sender, EventArgs e)
  67. {
  68. n = Convert.ToInt16(textBox1.Text);
  69. int[] st = new int[n];
  70. int k, nr = 0;
  71. bool a, ev = false;
  72. k = 0;
  73. textBox2.Clear();
  74. while (k >= 0)
  75. {
  76. do
  77. {
  78. a = succesor(st, k);
  79. if (a) ev = valid(st, k);
  80. }
  81. while (a && !ev);
  82. if (a)
  83. if (solutie(st,k))
  84. {
  85. afisare(st, k);
  86. nr++;
  87. }
  88. else
  89. {
  90. k++;
  91. init(st, k);
  92. }
  93. else k--;
  94. }
  95. textBox2.AppendText("\r\n____\r\n" + nr.ToString() + " solutii");
  96. }
  97.  
  98. private void label1_Click(object sender, EventArgs e)
  99. {
  100.  
  101. }
  102.  
  103. private void textBox2_TextChanged(object sender, EventArgs e)
  104. {
  105.  
  106. }
  107. }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement