2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Ваша первая олимпиадная задача по программированию
Сообщение08.07.2018, 23:12 
Аватара пользователя


01/12/11

8634
Не желаете ли, уважаемые форумчане, поделиться своим личным опытом и впечатлениями от вашей первой олимпиадной задачи по программированию? Говорят, первая запоминается навсегда. Вторую, третью, можно забыть. Но только не первую.

Пока вы вспоминаете, я поделюсь своим опытом, совсем свежим. У меня первая в жизни олимпиадная (правда, совсем начального уровня) задача по программированию была сегодня (лучше поздно, чем никого). И звучит её условие следующим образом:

Написать процедуру, принимающую в качестве аргумента натуральное число $n$ и вычисляющую, сколько натуральных чисел, не превышающих $n$, делятся на 2 или на 3, но не делятся ни на 4, ни на 6.

Если верить народной мудрости, первый блин обязан выйти комом. Карочэ, у меня решение вот такое получилось:

Используется синтаксис Javascript
function howMany(n){
console.log((n/2 | 0) + (n/3 | 0) - 2*(n/6 | 0) - (n/4 | 0) + (n/12 | 0));
}

howMany(100);
 


Ну, как поётся в "Марице", за откровенность - откровенность! Жду ваших задач, как программер получки.

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение15.07.2018, 23:05 
Аватара пользователя


31/10/08
1244
Ktina в сообщении #1325262 писал(а):
Говорят, первая запоминается навсегда.

Первою не помню. Помню 5 и 6. В 6 было 2 сковородки.

На сковородке одновременно можно положить k котлет. Каждую котлету нужно обжаривать m минут непрерывно, с каждой стороны. За какое наименьшее время удастся поджарить с обеих сторон n котлет?
Входные данные

В единственной строке входного файла INPUT.TXT записано три натуральных числа: k, m, n, не превышающих 30000.
Выходные данные

В единственную строку выходного файла OUTPUT.TXT нужно вывести единственное число – минимальное время, за которое можно поджарить все котлеты.

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение01.08.2018, 18:06 


15/03/11
137
Ну не олимпиадная, а, скорее, первая задача, которая меня заинтересовала.

Разгадыватель японских кроссвордов.

Время от времени возвращаюсь к ней, когда придумываю оптимизации.

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение01.08.2018, 18:19 
Аватара пользователя


07/01/15
1145
Отсортировать массив из нулей и единиц. Я был "начитанный", и потому написал быструю сортировку. За что и отхватил неимоверно (учитель был строгий).

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение01.08.2018, 19:15 
Аватара пользователя


11/12/16
13195
уездный город Н
Задача не с олимпиады, а (по легенде) с собеседования в Майкрософт начала-середины 90-х.

Есть односвязный список, который может закончиться или замкнуться на любой свой элемент.
Нужно
а) не создавая "новых структур данных", или, что тоже самое, размер требуемой памяти не должен зависеть от размера списка.
б) за минимальное время дать ответ на вопрос: список закончился или замкнулся?

Входные данные - указатель на первый элемент списка.

Эту задачу на форуме уже публиковал, но ссылку давать не буду.

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение01.08.2018, 19:21 


14/01/11
2916
SomePupil в сообщении #1329996 писал(а):
За что и отхватил неимоверно (учитель был строгий).

А что он ожидал увидеть, сортирующую сеть?

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение01.08.2018, 19:26 
Заслуженный участник
Аватара пользователя


08/11/11
5940
Поразрядную наверное.

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение01.08.2018, 20:06 
Заслуженный участник
Аватара пользователя


16/07/14
8335
Цюрих
Или подсчетом.

Первую олимпиадную задачу не помню (и непонятно, где граница между олимпиадными задачами и практикой для освоения языка).
Помню одну из первых программ (на basic) - на экране рисуем квадрат, перемещается стрелками, по нажатию определенных клавиш в определенных частях рисуются какие-то фиксированные примитивы. И дополнительная сложность - как сделать, чтобы если квадрат при перемещении нарисовался поверх чего-то нарисованного ранее, при перемещении его восстанавливать предыдущий рисунок на месте рамки.

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение01.08.2018, 20:58 
Аватара пользователя


27/02/12
3706
В олимпиадах не участвовал, т.к. программированием занялся с нуля, когда было уже за 40, :wink:
а на предприятии появились первые компы (начало 90-х).
Первая программа - определить день недели по введенной дате.
Из тех, что писал не для производства, а ради интереса, запомнились ещё две.
1. Счеты. Обычные конторские.
2. Программа управления с моей рабочей станции остальными компьютерами в сети.
А до того, как начал изучать языки программирования, делал в SC4 (SuperCalc4, предтеча Excel)
циклы (встроенных не было), которые решали дифуры и вычисляли интегралы.

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение02.08.2018, 04:28 
Аватара пользователя


07/01/15
1145
Sender в сообщении #1330016 писал(а):
А что он ожидал увидеть

Мне следовало подсчитать количество нулей (или единиц) в массиве.

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение02.08.2018, 08:02 
Аватара пользователя


14/12/17
1471
деревня Инет-Кельмында
miflin в сообщении #1330024 писал(а):
А до того, как начал изучать языки программирования, делал в SC4 (SuperCalc4, предтеча Excel)
циклы (встроенных не было), которые решали дифуры и вычисляли интегралы.


Это невероятно круто! В своё время я пытался и не смог разобраться с его макроязыком, пришлось переносить ведомости на foxbase.

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение02.08.2018, 08:16 
Аватара пользователя


27/02/12
3706
eugensk в сообщении #1330095 писал(а):
разобраться с его макроязыком

Забавно то, что на момент создания таблиц для вычисления интегралов и решения дифуров
я не знал, что в SC4 есть макросы :D . SC4 - первый продукт, с которым я столкнулся на компе.
На предприятии вели занятия по нему, ну, и я записался. Не знал ни NC, ни команд ДОС.
Но когда есть оператор if и альтернативный выбор, то кое-что можно сделать.
Я использовал режим автоматического пересчета "по столбцам" при каждом изменении данных.
Всё это делалось ради интереса...

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение23.11.2018, 14:43 


15/11/15
916
Тоже не был на олимпиаде. Помню интересную лабораторку:
Цитата:
Задана точка с координатами (x,y) и треугольник с координатами вершин (x1,y1), (x2,y2), (x3,y3). Определить, лежит ли точка внутри или вне треугольника.

Решил ее через площади треугольников, инета тогда не было, мог гордиться своим решением :)

 Профиль  
                  
 
 Re: Ваша первая олимпиадная задача по программированию
Сообщение25.11.2018, 17:28 


28/07/17

317
Олимпиада первая та, что постом ниже. Специально участия не искал, случайно наткнулся, заинтересовало. Результат - пока 65-е место, т.к. постепенно "ползу" вниз, а новых идей, как улучшить свой результат - нету.

Задач несколько интересных было. Например, программа, помогающая решить судоку. Программа, решающая пятнашки.

 Профиль  
                  
 
 Программирование
Сообщение25.11.2018, 17:53 
Аватара пользователя


10/10/18
739
At Home
miflin в сообщении #1330024 писал(а):
В олимпиадах не участвовал <...>

Первая программа - определить день недели по введенной дате.
Программированием я заинтересовался, когда олимпиад у нас и в помине не было (или я не знал). Первую программу помню -- игра в Калах (без гугла даже не помню, о чём игра...) -- на бейсике, машина -- Д3-28 (с памятью 128-кбайт у нас были две). Начало 80-х. К машине было много документации, что привело к тому, что изучение бейсика и машинных кодов шло параллельно (даже в бейсике /интерпретаторе/ что-то менял, чуть, конечно, но факт помню). Первая программа в кодах была написана почти сразу за Калахом, в программе той вычислялось (или проверялось -- этого уже не помню) простое число. Писал на бумажке дома на кухне. Вроде, запустилась сразу.

miflin в сообщении #1330024 писал(а):
Из тех, что писал не для производства, а ради интереса, запомнились ещё две.
<...>
2. Программа управления с моей рабочей станции остальными компьютерами в сети.
Опять синхронистичность! Я тоже писал такую программу и даже её сохранил!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group