Как решить проблему с выводом на консоль знака бесконечности?C#
Console.WriteLine("Введите X для вычисления");
Console.Write("X: ");
double valueX = Convert.ToDouble(Console.ReadLine());
double sum = 0;
double f = 20;
for (double i = 4; i <= f; i++)
{
// Вычисление сигмы i и valueX по модулю
double sigma = Math.Abs(i * valueX) % i;
if (sigma != 0)
{
sum += Math.Pow(Math.Log(sigma), 2) / (i + valueX);
}
Console.WriteLine($"Сумма квадратов натуральных логарифмов {sum}");
}
Выводит в консоль знак бесконечности. Что-то ничего не приходит на ум. Возможно кто-то понял в чем ошибка.
Ответы (1 шт):
Автор решения: rotabor
→ Ссылка
На ноль нужно проверять знаменатель:
Console.Write("Введите X для вычисления: ");
double valueX = Convert.ToDouble(Console.ReadLine());
if (valueX == 0) { Console.Write("0 не подходит для X"); return; }
double absx = Math.Abs(valueX);
double sum = 0;
for (int i = 4; i <= 20; i++) {
double sigma = i + valueX;
if (sigma != 0)
sum += Math.Pow(Math.Log(i * absx), 2) / sigma;
}
Console.WriteLine($"Сумма квадратов натуральных логарифмов {sum}");