Программа выводит значения в виде Nan при некоторых условиях в уравнении - C#
Формулировка задачи:
Здравствуйте! Помогите разобраться. Написал программу для решения уравнений вида x^n=a. Почему при вводе A отрицательного числа, а степени N положительного, нечетного, ответ выходит в виде Nan
using System; class Uravnenie { static void Main() { double a,n,k,x; Console.WriteLine("Введите A и N в уравнение вида x^n=a"); Console.WriteLine("Введите A"); a = double.Parse(Console.ReadLine()); Console.WriteLine("Введите N"); n = double.Parse(Console.ReadLine()); k = 1 / n; x = Math.Pow(a,k); if ((n % 2 == 0) & (a >= 0) | (n % 2 != 0) & (a>=0 | a<0)) { Console.WriteLine("Ответ: Х равен " + x); Console.ReadLine(); } else Console.WriteLine("Нет корней!!"); } }
Решение задачи: «Программа выводит значения в виде Nan при некоторых условиях в уравнении»
textual
Листинг программы
using System; namespace Power { static class MyMath { public static double Power(double x, double n) { if (Math.Abs(n - 0) < double.Epsilon) return 1; if (Math.Abs(n - 1) < double.Epsilon) return x; if (Math.Abs(x - 0) < double.Epsilon) return 0; if (Math.Abs(x - 1) < double.Epsilon) return 1; if (x > 0) return Math.Pow(x, n); return Math.Round(-Math.Exp(n * Math.Log(-x, Math.E)), 15); } } internal class Program { private static void Main() { for (double i = -2; i < 3; i += 0.5) for (double j = -2; j < 2; j += 0.5) Console.WriteLine("{0}^{1} = {2}", i.ToString(), j.ToString(), MyMath.Power(i, j).ToString()); Console.WriteLine(MyMath.Power(-8, 1.0 / 3)); Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д