Алгоритм вычисления числа сочетаний с использованием рекуррентной формулы - C#

Узнай цену своей работы

Формулировка задачи:

Заданием было(дословно): Запрограммировать рекурсивный алгоритм вычисления числа сочетаний, используя рекуррентную формулу и учитывая, что . В общем, получилось это:
Листинг программы
  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.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace Лаба_7
  11. {
  12. public partial class Form1 : Form
  13. {
  14. public Form1()
  15. {
  16. InitializeComponent();
  17. }
  18. private void button1_Click(object sender, EventArgs e)
  19. {
  20. int n = 3;
  21. int k = 33;
  22. Int64 b = Soch(n, k);
  23. Text = b.ToString();
  24. Int64 f;
  25. }
  26. public static Int64 Soch (int n, int k)
  27. {
  28. if (k == 1 ) return n;
  29. if (k == n) return 1;
  30. if (n >= 0 & k >= 0)
  31. {
  32. return f = Soch(n - 1, k) * Soch(n - 1, k - 1);
  33. }
  34. }
  35. }
  36. }
В итоге, ошибки,ничего не вышло.Плоховато я понял рекурсию,наверное.Скажите,что и как нужно исправить,пожалуйста.

Решение задачи: «Алгоритм вычисления числа сочетаний с использованием рекуррентной формулы»

textual
Листинг программы
  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.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace Лаба_7
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         public Form1()
  16.         {
  17.             InitializeComponent();
  18.         }
  19.  
  20.         private void button1_Click(object sender, EventArgs e)
  21.         {
  22.             int n = int.Parse(textBox1.Text);
  23.             int k = int.Parse(textBox2.Text);
  24.             if (n >= k)
  25.             {
  26.                 int b = Soch(n, k);
  27.                 string v = b.ToString();
  28.                 MessageBox.Show("Значение рекурсивного алгоритма = "+ v);
  29.             }
  30.             else
  31.             {
  32.                 MessageBox.Show("N не может быть меньше,чем K");
  33.             }
  34.  
  35.         }
  36.  
  37.             public static int Soch(int n, int k)
  38.         {
  39.            
  40.                 if (k == 1) return n;
  41.                 if (k == n) return 1;
  42.                 return Soch(n - 1, k) + Soch(n - 1, k - 1);    
  43.         }
  44.     }
  45. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы