Алгоритм вычисления числа сочетаний с использованием рекуррентной формулы - C#
Формулировка задачи:
Заданием было(дословно):
Запрограммировать рекурсивный алгоритм вычисления числа сочетаний, используя рекуррентную формулу и учитывая, что .
В общем, получилось это:
В итоге, ошибки,ничего не вышло.Плоховато я понял рекурсию,наверное.Скажите,что и как нужно исправить,пожалуйста.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace Лаба_7
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- int n = 3;
- int k = 33;
- Int64 b = Soch(n, k);
- Text = b.ToString();
- Int64 f;
- }
- public static Int64 Soch (int n, int k)
- {
- if (k == 1 ) return n;
- if (k == n) return 1;
- if (n >= 0 & k >= 0)
- {
- return f = Soch(n - 1, k) * Soch(n - 1, k - 1);
- }
- }
- }
- }
Решение задачи: «Алгоритм вычисления числа сочетаний с использованием рекуррентной формулы»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace Лаба_7
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- int n = int.Parse(textBox1.Text);
- int k = int.Parse(textBox2.Text);
- if (n >= k)
- {
- int b = Soch(n, k);
- string v = b.ToString();
- MessageBox.Show("Значение рекурсивного алгоритма = "+ v);
- }
- else
- {
- MessageBox.Show("N не может быть меньше,чем K");
- }
- }
- public static int Soch(int n, int k)
- {
- if (k == 1) return n;
- if (k == n) return 1;
- return Soch(n - 1, k) + Soch(n - 1, k - 1);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д