Lazım olduqda düzbucaqlını elə fırladaq ki, onun eni hündürlüyündən kiçik olmasın. Üç kvadratın yerləşməsinin bütün mümkün variantlarına baxaq.
1-ci hal. Kvadratın tərəfinin uzunluğu -dir:
2-ci hal. Əgər w < 3h olarsa, kvadratın tərəfinin uzunluğu -dür:
3-cü hal. Əgər w \ge 3h olarsa, kvadratın tərəfinin uzunluğu -dır:
Üç haldan kvadratın tərəfinin mümkün maksimum uzunluğunu seçmək qalır.
Əgər w \ge 3h olarsa, birinci və üçüncü halları birləşdirmək olar. Onda kvadratın tərəfinin uzunluğu
Əgər w < 3h olarsa, birinci və ikinci halları birləşdiririk. Bu halda kvadratın tərəfinin uzunluğu
Alqoritmin realizasiyası
Giriş məlumatlarını oxuyuruq
scanf("%lf %lf",&w,&h);Düzbucaqlını elə normallaşdırırıq ki, onun eni hündürlüyündən kiçik olmasın.
if (w < h)
temp = w, w = h, h = temp;Cavabı hesablayıb çıxarırıq.
if (w >= 3*h) res = h;
else res = max(h/2, w/3);
printf("%.3lf\n",res);Java realizasiyası
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
double w = con.nextDouble();
double h = con.nextDouble();
if (w < h)
{
double temp = w;
w = h;
h = temp;
}
double res;
if (w >= 3*h) res = h;
else res = Math.max(h/2, w/3);
System.out.printf("%.3f\n",res);
}
}Python realizasiyası
Giriş məlumatlarını oxuyuruq
w, h = map(float, input().split())Düzbucaqlını elə normallaşdırırıq ki, onun eni hündürlüyündən kiçik olmasın.
if w < h:
w, h = h, wCavabı hesablayıb çıxarırıq.
if w >= 3 * h:
res = h
else:
res = max(h / 2, w / 3)
print(res)