Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на C#

Алексей Келв Ученик (217), на голосовании 4 недели назад
даны три числа a, b, c. Вычислить экспоненту (e^x )того числа, значение которого ближе всего к значению функции y=(a^2+b^2+c^2 )/(a+b+c). Если a+b+c=0, то вывести сообщение об этом
Голосование за лучший ответ
Мыслитель (5297) 1 месяц назад
 using System; 

namespace Exponent
{
internal class Program
{
static void Main()
{
Console.Write("Введите a: ");
double a = double.Parse(Console.ReadLine());

Console.Write("Введите b: ");
double b = double.Parse(Console.ReadLine());

Console.Write("Введите c: ");
double c = double.Parse(Console.ReadLine());

if ((a + b + c) == 0)
Console.WriteLine("a + b + c = 0");
else
{
double exp = Math.Exp((Math.Pow(a, 2) + Math.Pow(b, 2) + Math.Pow(c, 2)) / (a + b + c));

Console.WriteLine($"e = {exp}");
}
Console.ReadKey();
}
}
}
Алексей КелвУченик (217) 1 месяц назад
нужно вычислить не экспоненту значения функции, а числа которое ближе к значению
А какое же ещё число х самое близкое к у как не само это у, если неизвестно, что число х должно быть, например, целым? ?
Алексей КелвУченик (217) 1 месяц назад
Вот что ответил препод:"Мы находим у, сравниваем с тремя числами. То число, которое ближе всего к у, встает вместо х в степень экспоненты"
Jurijus Zaksas Искусственный Интеллект (445688) 1 месяц назад
А не засыпесси? Мне не жалко, но ты смотри по себе там...
 static double MinDiff(IEnumerable a, double b) 
{
double Result = a.First();
foreach (double x in a)
if (Math.Abs(x - b) < Math.Abs(b - Result))
Result = x;
return Result;
}

static void Main(string[] args)
{
const double epsilon = 1e-5;
double[] a = new double[3];
int i = 0;
for (char c = 'a'; c <= 'c'; c++)
{
Console.Write($"{c}=");
a[i++] = double.Parse(Console.ReadLine());
}
if (Math.Abs(a.Sum()) < epsilon)
throw new DivideByZeroException(); // You may want to just show a message instead
var e = a.Select(x => x * x).Sum() / a.Sum();
Console.WriteLine(Math.Exp(MinDiff(a, e)));
}
Похожие вопросы