Чтобы квадрат вписался в круг, его диагональ должна быть равна диаметру круга. Если трактовать "уместиться" как "пролезть", то диагональ должна быть меньше диаметра.. Формулы площадей квадрата S₁ и круга S₂ известны, что легко позволяет нам найти нужное условие.
Если нужно, чтобы случай, когда квадрат вписан в круг тоже учитывался, строгое неравенство следует заменить нестрогим.
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016 begin var s1:=ReadReal('Площадь квадрата'); var s2:=ReadReal('Площадь круга'); if pi*s1<2*s2 then Writeln('Квадрат умещается в круге') else Writeln('Квадрат не умещается в круге') end.
Тестовое решение: Площадь квадрата 24.6 Площадь круга 28.4 Квадрат не умещается в круге
Перейдем в семеричную систему счисления. Тогда операция mod 7 будет получать последнюю цифру исходного числа. Заметим также, что в переменную m кладется максимальная цифра из введенного числа. Тогда нам нужно, чтобы цифра 5 стояла в разряде единиц и была наибольшей в числе. Понятно, что двузначное число, удовлетворяющее этим условиям, собрать нельзя. Предположим, что число трехзначное, начинающееся на 1. Тогда оно имеет вид 1?5, где ?≤5. Но 1+5+5<12, поэтому такой случай никогда не приведет к интересующему ответу. Пусть число имеет вид 2?5. Тогда 2+5+5=12, то есть число 255 нас устраивает. Переведя его в десятичную систему счисления, получаем, что ответом будет число 138.
Формулы площадей квадрата S₁ и круга S₂ известны, что легко позволяет нам найти нужное условие.
Если нужно, чтобы случай, когда квадрат вписан в круг тоже учитывался, строгое неравенство следует заменить нестрогим.
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
begin
var s1:=ReadReal('Площадь квадрата');
var s2:=ReadReal('Площадь круга');
if pi*s1<2*s2 then Writeln('Квадрат умещается в круге')
else Writeln('Квадрат не умещается в круге')
end.
Тестовое решение:
Площадь квадрата 24.6
Площадь круга 28.4
Квадрат не умещается в круге
(см. объяснение)
Объяснение:
Pascal:
var x, m, s, d: integer;
begin
for i: integer := 1 to 150 do
begin
x:= i;
m:= 0;
s:= 0;
while(x>0) do
begin
d:= x mod 7;
s:= s+d;
if(d>m) then
m:= d;
x:= x div 7;
end;
if((m=5) and (s=12)) then
writeln(i);
end;
end.
Python:
for i in range(1, 150):
x = i
m = s = 0
while x > 0:
d = x % 7
s += d
if d > m:
m = d
x //= 7
if m == 5 and s == 12:
print(i)
Аналитическое решение:
Перейдем в семеричную систему счисления. Тогда операция mod 7 будет получать последнюю цифру исходного числа. Заметим также, что в переменную m кладется максимальная цифра из введенного числа. Тогда нам нужно, чтобы цифра 5 стояла в разряде единиц и была наибольшей в числе. Понятно, что двузначное число, удовлетворяющее этим условиям, собрать нельзя. Предположим, что число трехзначное, начинающееся на 1. Тогда оно имеет вид 1?5, где ?≤5. Но 1+5+5<12, поэтому такой случай никогда не приведет к интересующему ответу. Пусть число имеет вид 2?5. Тогда 2+5+5=12, то есть число 255 нас устраивает. Переведя его в десятичную систему счисления, получаем, что ответом будет число 138.
Задание выполнено!