Предмет: Информатика,
автор: oiwayZ
Бесконечная клеточная страница состоит из квадратных клеток. Сторона каждой клетки равна k единиц. Радиус круга равен r единиц. Нужно определить, сколько клеток входит в круг (и те, которые входят полностью в круг, и те, которые пересекаются окружностью).
k и r - натуральные
Вход 1 5 Выход 88
Вход 3 7 Выход 32
Вход 4 5 Выход 12
Написать желательно на Delphi 7, но и на pascal abc сойдёт.
Ответы
Автор ответа:
0
var i,k,p,r,m,n: integer;
begin
write('размер клетки k = '); readln(k);
write('радиус круга r = '); readln(r);
n:=r div k;
if ((r mod k)>0) then inc(n);
m:=0; p:=n-1;
for i:=1 to n-1 do
begin
if Ceil(sqrt(r*r-k*i*k*i))<=p*k then
begin
p:=p-1;
m:=m+n-i;
end;
end;
m:=4*n*n-4*m;
writeln(m);
end.
размер клетки k = 1
радиус круга r = 5
88
размер клетки k = 3
радиус круга r = 7
32
размер клетки k = 4
радиус круга r = 5
12
begin
write('размер клетки k = '); readln(k);
write('радиус круга r = '); readln(r);
n:=r div k;
if ((r mod k)>0) then inc(n);
m:=0; p:=n-1;
for i:=1 to n-1 do
begin
if Ceil(sqrt(r*r-k*i*k*i))<=p*k then
begin
p:=p-1;
m:=m+n-i;
end;
end;
m:=4*n*n-4*m;
writeln(m);
end.
размер клетки k = 1
радиус круга r = 5
88
размер клетки k = 3
радиус круга r = 7
32
размер клетки k = 4
радиус круга r = 5
12
Автор ответа:
0
Посмотрите тесты в условии задачи.
Автор ответа:
0
тут все верно
Автор ответа:
0
Возможно проблема в том, что я вместо ceil использую trunc, а после прибавляю 1. Мне нельзя использовать дополнительные библиотеки.
Автор ответа:
0
ну да
Автор ответа:
0
Чувствую себя идиотом. При целом значении у меня +1, а этого не нужно. Спасибо, что подтолкнули на решение
Похожие вопросы
Предмет: Кыргыз тили,
автор: kolmis
Предмет: Русский язык,
автор: morkovkairis
Предмет: Математика,
автор: orhideya1496
Предмет: Алгебра,
автор: tania040
Предмет: Математика,
автор: женя430