
07.09.2009, 22:22
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
Провел на форуме: 1313455
Репутация:
249
|
|
Не получается ниче =(
Что то типо того должно быть:
Код:
program point;
var
N,R,PRE,x,y:LongInt;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
{read(f1,R);}
readln(r);
if R>7 then begin
PRE:=(R*2-4)*(R*2-4);
for x :=-r to -r+4 do begin
for y :=-r to -r+2 do begin
if (x*x+y*y) <= r*r then N:=N+1;
end;
end;
writeln(f2,N*4+1);
writeln('pre = ',pre);
writeln('N= ',N);
writeln(PRE+N*4+4);
end
else
begin
for x :=-r to 0 do begin
for y :=-r to -1 do begin
if (x*x+y*y) <= r*r then N:=N+1;
end;
end;
writeln(f2,N*4+1);
writeln('N= ',N*4+1);
end;
close(f2);
close(f1);
readln;
end.
Смысл в том, чтобы для больших чисел просчитать квадрат который точно можно вычислить, а остатки уже считать в цикле.
|
|
|