Вычисление факториала поместить в отдельный метод - C#

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

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

нужно переделать метод факториал(2к)! ,чтоб он вызывался не через метод а в самом коде.
namespace lab
{
    public partial class Form1 : Form
    {
        private int M, N;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (x_tb.Text != String.Empty)
            {
                listBox1.Items.Add(x_tb.Text);
                x_tb.Text = String.Empty;
            }
                
            m_lb.Text = listBox1.Items.Count.ToString();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
            M = listBox1.Items.Count;
            N = int.Parse(N_tx.Text);
 
            double result = 1, temp_result = 0;
            List<double> X = new List<double>();
            List<double> Y = new List<double>();
 
            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                X.Add(Double.Parse(listBox1.Items[i].ToString()));
            }
 
            for (int ii = 0; ii < M; ii++)
            {
                int factorial = 1;
                result = 1;
                double a = 1;
                for (int i = 1; i <= N; i++)
                {
                    a *= X[ii];
                    temp_result =1;
                    int one = 1;
                    for (int k = 1; k <= i; k++)
                    {
                        for (int j = 1; j <= 2 * k; j++)
                        {
                            a *= X[ii];
                        }
                        int fact = Factorial(k * 2);
                        temp_result += one * ((a) / (fact + i));
                        one = -one;
                    }
                    result *= temp_result;
                }
                Y.Add(result);
                
            }
 
            Result resForm = new Result(X, Y);
            resForm.Show();
        }
 
        public int Factorial(int n)
        {
 
            int result = 1;
            for (int i = 1; i < n + 1; i++)
            {
                result *= i;  }
            
             return result;
        }

    }
}

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

textual
Листинг программы
        private void button2_Click(object sender, EventArgs e)
        {
 
            M = listBox1.Items.Count;
            N = int.Parse(N_tx.Text);
 
            double result = 1, temp_result = 0;
            List<double> X = new List<double>();
            List<double> Y = new List<double>();
 
            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                X.Add(Double.Parse(listBox1.Items[i].ToString()));
            }
 
            for (int ii = 0; ii < M; ii++)
            {
                int factorial = 1;
                result = 1;
                double a = 1;
                for (int i = 1; i <= N; i++)
                {
                    a *= X[ii];
                    temp_result = 1;
                    int one = 1;
                    for (int k = 1; k <= i; k++)
                    {
                        for (int j = 1; j <= 2 * k; j++)
                        {
                            a *= X[ii];
                        }
                        int fact = 1;
                        for (int z = 1; z < k*2+1; z++)
                        {
                            fact *= z;
                        }
                        temp_result += one * ((a) / (fact + i));
                        one = -one;
                    }
                    result *= temp_result;
                }
                Y.Add(result);
 
            }
 
            Result resForm = new Result(X, Y);
            resForm.Show();
        }

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


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

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

14   голосов , оценка 4.143 из 5
Похожие ответы