Məsələ kvadrat tənliyi aşağıdakı formula ilə həll etməkdir:
burada kvadrat tənliyin diskriminantıdır və bu b^2 - 4ac ilə göstərilir.
Diskriminantın işarəsindən asılı olaraq üç hal mümkündür:
d < 0, tənliyin kökü yoxdur;
d = 0, tənliyin bir kökü var;
d > 0: tənliyin iki kökü var, bunlar artma ardıcıllığında çıxarılmalıdır;
Alqoritmin reallaşdırılması
Tənliyin əmsalları və onun kökləri (əgər varsa) tam ədədlər olduğundan bütün hesablamalar tam ədədlərlə aparılacaq. Giriş məlumatlarını oxuyuruq.
scanf("%d %d %d", &a, &b, &c);Kvadrat tənliyin diskriminantını hesablayırıq.
d = b * b - 4 * a * c;Diskriminantın işarəsindən asılı olaraq cavabı çıxarırıq.
if (d < 0)
printf("No roots\n");
else if (d == 0)
{
x1 = -b / (2 * a);
printf("One root: %d\n", x1);
}
else
{
x1 = (-b - sqrt(d)) / (2 * a);
x2 = (-b + sqrt(d)) / (2 * a);
printf("Two roots: ");
if (x1 < x2)
printf("%d %d\n", x1, x2);
else
printf("%d %d\n", x2, x1);
}Java reallaşdırılması
import java.util.*;
public class Main
{
public static void main(String []args)
{
Scanner con = new Scanner(System.in);
int a = con.nextInt();
int b = con.nextInt();
int c = con.nextInt();
int d = b * b - 4 * a * c;
double x1 = (-b - Math.sqrt(d)) / (2 * a);
double x2 = (-b + Math.sqrt(d)) / (2 * a);
if (d == 0)
System.out.printf("One root: %.0f\n", x1);
else if (d < 0)
System.out.printf("No roots\n");
else if (x1 < x2)
System.out.printf("Two roots: %.0f %.0f\n", x1, x2);
else
System.out.printf("Two roots: %.0f %.0f\n ", x2, x1);
con.close();
}
} Python reallaşdırılması
import mathTənliyin əmsalları və onun kökləri (əgər varsa) tam ədədlər olduğundan bütün hesablamalar tam ədədlərlə aparılacaq. Giriş məlumatlarını oxuyuruq.
a, b, c = map(int, input().split())Kvadrat tənliyin diskriminantını hesablayırıq.
d = b * b - 4 * a * cDiskriminantın işarəsindən asılı olaraq cavabı çıxarırıq.
if d < 0:
print("No roots")
elif d == 0:
x1 = -b // (2 * a)
print("One root:", x1)
else:
x1 = int((-b - math.sqrt(d)) // (2 * a))
x2 = int((-b + math.sqrt(d)) // (2 * a))
print("Two roots:", min(x1, x2), max(x1, x2))