Не работает цикл с факториалом - C#
Формулировка задачи:
В общем, есть задача с формулой и факториалом в ней. Программа работала исправно, когда дополнительно стоял цикл вычисления факториала внутри цикла вычисления суммы n членов. Когда я ее предоставил преподу, он меня заставил переписать задачу так, чтобы "Факториал не высчитывался для каждого нового члена, а постоянно был в памяти уже готовый".
И тут у меня появляется проблема. В решении с двумя циклами считалось всё правильно. Теперь правильно высчитывается только при n = 1, а если n больше 1, то программа выдает неправильные
целые
числа. Sum брал как 0, так и 0.0 - ничего не изменялось. В строчке вывода {2} и {3} стоят лишь в отладочных целях - они подтверждают, что факториал вычисляется неправильно. Пожалуйста, укажите ошибку или дайте совет.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cycle7
{
class Program
{
static void Main(string[] args)
{/*7. Дано натуральное n. Вычислить значение выражения -2/1! + 3/2! + (-1)^n*(n+1)/n!*/
int n = 0, i = 1, sign = -1;
double Sum = 0.0, temp = 0;
long fact = 1L;
Console.WriteLine("Вас приветствует программа, вычисляющая сумму элементов последовательности с\nn-ным членом, равным (-1)^n*(n+1)/n!.");
Console.WriteLine("Введите n:");
n = int.Parse(Console.ReadLine());
for (i = 1; i <= n; i++, sign = -sign)
{
temp = (i + 1) / fact;
Sum += sign * temp;
fact *= i;
}
Console.WriteLine("Сумма {0} членов равна {1} {2} {3}", n, Sum, fact, i);
Console.ReadLine();
}
}
}Решение задачи: «Не работает цикл с факториалом»
textual
Листинг программы
temp = (i + 1) / (double)fact;