Определить количество членов арифметической прогрессии. Проверить код - C#
Формулировка задачи:
правильно ли написан код?
2.Определить количество членов арифметической прогрессии
s = a + (a + h) + ... + (a + nh),
сумма которых не превышает заданного числа р.
int s = 0, n = 0, m;
const int a = 2, h = 3, p = 41;
while (s < p)
{
m = a + n * h;
s = s + m;
n = n + 1;
}
//вычитается 1, прибавленная после
//последнего изменения суммы.
n = n - 1;
Console.WriteLine("{0:d}", n);
Console.ReadKey();Решение задачи: «Определить количество членов арифметической прогрессии. Проверить код»
textual
Листинг программы
public static void Main(string[] args)
{
const int a = 2, d = 3, s = 41;
int quadraticEqu = (int) QuadraticEqu(d, 2*a - d, -2*s);
Console.WriteLine(quadraticEqu);
}
private static double QuadraticEqu(double a, double b, double c)
{
double d = b*b - 4*a*c;
if (d > 0)
{
double x = (-b + Math.Sqrt(d))/(2*a);
return Math.Abs(x);
}
if (Math.Abs(d) < 10E-6)
{
return -b/2*a;
}
return 0;
}