HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 07.09.2009, 17:44
Dosia
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
Провел на форуме:
1313455

Репутация: 249
По умолчанию

program point;
var
R:integer;
begin
writeln('Vvedite radius');
readln(R);
writeln(R*R+(R-1)*(R-1));
readln;
end.

Последний раз редактировалось Dosia; 07.09.2009 в 17:54..
 
Ответить с цитированием

  #2  
Старый 07.09.2009, 17:58
Fantom3D
Познающий
Регистрация: 23.08.2009
Сообщений: 47
Провел на форуме:
63389

Репутация: 1
По умолчанию

Dosia
Спасибо.... но чтобы правильно заработало пришлось довести до такого вида:

Цитата:
var
R:integer;
begin
readln(R);
R:= R + 1 ;
writeln(R*R+(R-1)*(R-1));
end.
Потому что у вас значение радиуса смещалось на единицу. Но решение все равно не правильное(( Проходит только 3 теста из 20 - 15% Помогите, кто нибудь!!!!
 
Ответить с цитированием

  #3  
Старый 07.09.2009, 18:00
Dosia
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
Провел на форуме:
1313455

Репутация: 249
По умолчанию

ссылку мне на проверку и все будет. Не понятно что вы имеете в виду под словом смещение, программа работала абсолютно корректно:

R = 1 N =1
R = 2 N =5
R = 3 N = 13
R = 4 N = 25
R = 5 N = 41

Цитата:
Технические условия.
Входные данные: Единственное число - радиус окружности R (R <= 15000).

Выходные данные: Единственное число - искомое количество точек N.
Эти слова напомнили мне олимпиаду по информатике, если так, то возможно данные должны быть считанны из файла и после записаны в него? В любом случае надо посмотреть где вы там проверяете правильность работы программы.

Последний раз редактировалось Dosia; 07.09.2009 в 18:09..
 
Ответить с цитированием

  #4  
Старый 07.09.2009, 18:16
Fantom3D
Познающий
Регистрация: 23.08.2009
Сообщений: 47
Провел на форуме:
63389

Репутация: 1
По умолчанию

Dosia
Да, данные считываются из файла и потом вписываются, таким вот образом:
Код:
var
R:integer;
   f1,f2:text;
begin
     assign(f1,'input.txt');
     assign(f2,'output.txt');
      reset(f1);
      rewrite(f2);
read(f1,R);
R:= R + 1 ;
writeln(f2,R*R+(R-1)*(R-1));
     close(f2);
     close(f1);
end.
По поводу неккоректно:
Цитата:
R = 3 N = 13
Условие:
Цитата:
....Пример ввода
2

Пример вывода
13
Обратите внимание на пример ввода.

Это давалось в задаче, отредактировал первый пост. Извините что сразу не вписал.

А программа должна работать на все числа до 15000, а она уже на 4 выдает неправильно, там вместо 41 должно быть 49. Посчитал вружную, попробуйте сами.


P.S Это не олимпиада, а онлайн контестер, в нем пишется таким образом стандартно.

Последний раз редактировалось Fantom3D; 07.09.2009 в 18:19..
 
Ответить с цитированием

  #5  
Старый 07.09.2009, 18:23
Dosia
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
Провел на форуме:
1313455

Репутация: 249
По умолчанию

Понятно, я радиус по количеству точек считал. R = 3 Соответственно будет N = 24?

Последний раз редактировалось Dosia; 07.09.2009 в 18:36..
 
Ответить с цитированием

  #6  
Старый 07.09.2009, 18:31
Fantom3D
Познающий
Регистрация: 23.08.2009
Сообщений: 47
Провел на форуме:
63389

Репутация: 1
По умолчанию

Dosia
Спс. Жду....
 
Ответить с цитированием

  #7  
Старый 07.09.2009, 18:38
Fantom3D
Познающий
Регистрация: 23.08.2009
Сообщений: 47
Провел на форуме:
63389

Репутация: 1
По умолчанию

Цитата:
R = 3 Соответственно будет N = 24?
Хм.... у меня и в моей версии программы и на листке бумаги 25 выходит...
 
Ответить с цитированием

  #8  
Старый 07.09.2009, 19:56
Dosia
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
Провел на форуме:
1313455

Репутация: 249
По умолчанию

будет 29, я на листочке даже проверил, а также моя прога мне это сказала. Над ней работали 4 быдлокодера (включая меня) =))))))

Код:
program point;
var
N,R,x,y:integer;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,R);
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);
close(f2);
close(f1);
readln;
end.
Было съедено 2 шоколадных плитки, при решении задачи уровня начальной школы =)

Последний раз редактировалось Dosia; 07.09.2009 в 20:04..
 
Ответить с цитированием

  #9  
Старый 07.09.2009, 20:42
Fantom3D
Познающий
Регистрация: 23.08.2009
Сообщений: 47
Провел на форуме:
63389

Репутация: 1
По умолчанию

Шоколад полезен, но все же:


Как видите, задачка далеко не начального уровня.



Добейте, пожалуйста.
 
Ответить с цитированием

  #10  
Старый 07.09.2009, 21:37
Dosia
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
Провел на форуме:
1313455

Репутация: 249
По умолчанию

я остался 1 время уже позднее, пытаюсь оптимизировать быдлокод, чтобы быстрее работал. Можно попробовать заменить integer на LongInt, так по сути будет правильнее, щас будет вариант оптимизированный для больших чисел.

Последний раз редактировалось Dosia; 07.09.2009 в 21:45..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.