Не работает цикл с факториалом - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д