Мне нужно закодировать факториальный калькулятор, который достигает 1001 *, я получаю 19
, и это нормально, но когда я пытаюсь вычислить 20!
, он возвращает отрицательное число.
Как я могу исправитьэтот?
Теперь, немного предыстории (в случае, если то, что у меня есть, совершенно неверно), я не брал класс VB.Net (где они изучали факториалы), поэтому у меня нет законного НИЧЕГО, что я делаю здесь.
public partial class Form1 : Form
{
private void btnCalculate_Click(object sender, EventArgs e)
{
int f = 1, n, i;
n = Int32.Parse(txtNumber.Text);
for (i = 1; i <= n; i++)
{
f = f * i;
txtFactorial.Text = f.ToString();
}
}
}
Ожидаемый: 20! = 2,432,902,008,176,640,000
Фактический: 20! = -2102132736