Вычисление факториала поместить в отдельный метод - 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();
}