Pull to refresh
37
0
Send message

Задачка про саммит G50 и рукопожатия

Reading time3 min
Views12K
Мой друг получил письмо от рекрутера, ведущее на сайт с такой задачкой:
На саммите большой пятидесятки собрались представители пятидесяти государств. От каждого государства присутствовал президент и премьер-министр. В перерыве между [дискуссиями] участники обменялись дипломатическими рукопожатиями, при этом, так как рукопожатия совершались в дипломатических целях, ни один президент не обменивался рукопожатиями с премьер-министром своей страны.

На званом обеде, посвящённом закрытию саммита, президент Анчурии опросил всех участников, кто сколько сделал рукопожатий, и не получил ни одного повторяющегося ответа. Сколько рукопожатий сделала премьер-министр Анчурии?

Как оказалось, задача имеет единственное решение.
Spoiler!!! Решение под катом
Total votes 59: ↑49 and ↓10+39
Comments33

C#: Этюды, часть 7

Reading time1 min
Views1.8K
Сегодня простой этюд, почти без кода.

Допустим, есть некий класс и его статический конструктор:
static C()
{ Console.WriteLine("from static ctor"); }

Как известно, статические конструкторы вызываются до первого использования типа. Других ограничений нет, поэтому время его вызова вы не можете контролировать (он может вызваться как в самом начале программы, так и при первом обращении). В частности, если два класса используют друг друга в статических конструкторах, поряд вызова этих конструкторов не определен.

В общем, все очень сложно. Тем не менее, напишите код, который гарантированно вызывает указанный выше статический конструктор как раз в нужном месте.

Console.WriteLine("before static ctor");
// нужно вызвать здесь
Console.WriteLine("after static ctor");
Total votes 32: ↑22 and ↓10+12
Comments60

C#: Этюды от Эрика Липперта

Reading time1 min
Views1.5K
Возможно, вам нравятся головоломки и C#, и, может быть, вы даже решали некоторые из них в моем блоге здесь, на Хабре.

Теперь у вас есть возможность попробовать свои силы в решении головоломок более высокого уровня.

Если вы не слышали о парне по имени Эрик Липперт, то очень советую почитать его блог. Эрик — один из разработчиков компилятора C# и часто пишет о разных необычностях и странностях в работе компилятора и среды исполнения .NET, а главное, объясняет причины такого поведения. Он пишет настолько интересно и увлекательно, что у его блога даже есть перевод на русский.

В своей записи от 8 июля Эрик дает ссылку на видео, в котором он и Neal Gafter (который также является одним из разработчиков платформы .NET) рассматривают несколько головоломок на языке C#. Пока я успел посмотреть только три из них, но мне уже нравится их уровень. (Внимание: за каждой головоломкой идет ответ, если хотите подумать самостоятельно, не забывайте нажимать на паузу)

Рекомендую всем, кто хочет расширить свой познания в C#/.NET.

UPD: поскольку с отображением видео есть определенные проблемы, можно скачать видео напрямую. Для этого идем сюда, вводим в строке поиска puzzlers и выбираем справа Download

UPD2: проблемы с воспроизведением видео на исходном сайте скорее правило, чем исключение, поэтому я залил файл на файлообменник: depositfiles.com/files/7ej8pu7zt
Total votes 63: ↑40 and ↓23+17
Comments14

C#: Этюды, часть 6

Reading time1 min
Views461
Со времени последнего этюда прошло очень много времени, но я надеюсь, что хабраюзеры не успели утратить интерес к C#.

В этот раз задачка довольно простая, но новичкам в шарпе она может оказаться полезной. Есть следующий код:
Читать дальше →
Total votes 18: ↑13 and ↓5+8
Comments30

C#: Этюды, часть 5

Reading time1 min
Views463
Хабраюзеры нашли решение предыдущего этюда, но я решил вдобавок продемонстрировать свое (там же)

С внутренностями .NET пока остановимся, потому что придумать этюд на эту тему оказалось несколько сложнее, чем я думал: не хватает элемента неожиданности, ощущения «нерешаемости» задачи.

У сегодняшней задачки, надеюсь, с этим все будет в порядке :)
Читать дальше →
Total votes 12: ↑8 and ↓4+4
Comments17

C#: Этюды, часть 4

Reading time1 min
Views648
Продолжение, предыдущая часть здесь

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

Имеется простейший класс: class X { public int Val; }. При создании объекта этого класса какой реальный размер он будет занимать? И какие значения будут содержать дополнительные поля? Предъявите доказательство в виде кода на C# ;)
Читать дальше →
Total votes 18: ↑13 and ↓5+8
Comments41

C#: Этюды, часть 3

Reading time2 min
Views1.5K
В предыдущей части было предложено три разных по своей сути решения.

Сегодня — новая загадка, из области ASP.NET. Её основное отличие от предыдущих в том, что я столкнулся с ней в реальной ситуации, и пришлось потратить время, чтобы разобраться, в чем же дело.

Итак, на странице Test.aspx имеется код:


Читать дальше →
Total votes 61: ↑34 and ↓27+7
Comments76

C#: Этюды, часть 2

Reading time2 min
Views1.5K
Продолжение, начало здесь

Начну с соцопроса: какие Вы знаете способы выполнить код до начала функции Main() (надеюсь, что перечислят все известные мне и парочку неизвестных :) )?

А теперь задачка:

Перед Вами небольшой код, выводящий два символа (кстати, проверьте себя: в каком порядке они выведутся?). Необходимо вывести подчеркивание "_" между этими символами.
Конечно, задача была бы тривиальной без ограничений. А они следующие:

Читать дальше →
Total votes 25: ↑17 and ↓8+9
Comments43

С#: Этюды, часть 1

Reading time2 min
Views1.2K
На канале c# в irc-сети Руснет пытаюсь развлекать людей т.н. этюдами. Это — короткие задачки, для решения которых требуется знать некоторые тонкости языка и реализации, и которые совсем не очевидны для человека, с упомянутыми тонкостями не знакомого.
Этюд номер 1 каналом уже разгадан, но хабросообщество его пока, скорее всего, не знает.
Читать дальше →
Total votes 56: ↑36 and ↓20+16
Comments43

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity