На днях исполняется год нашему блогу на Хабре. И мы решили отметить это дело! Нет, ну не так, как вы подумали. Хотя так, конечно, тоже. Но сейчас не об этом.
Нам очень хочется подарить всем нашим читателям какие-то подарки, но подарок у нас только один (зато хороший), поэтому мы решили разыграть его в небольшом конкурсе для программистов. Условия конкурса и описание приза — под катом. Задания не отнимут много времени, шанс выиграть есть у всех.
Приз
Приз мы хотели сделать не только ценным, но также уникальным и запоминающимся. В конце-концов, новую железку к компьютеру или телефон вы и без нас купите, а вот получить в качестве подарка развлечение на несколько килобаксов — событие памятное. Так что дарим мы VIP-билет программы Корпоративного гостеприимства УЕФА на матч Швеция-Франция, который будет проходить 19-го июня в Киеве в рамках чемпионата Евро-2012.
Билет включает включает в себя:
- Места в отдельном секторе с отличным видом на стадион
- Отдельный вход в VIP-зону
- Развлекательная программа в специальной зоне корпоративного гостеприимства
- Широкий выбор блюд и напитков
- Пропуск на автостоянку
- Памятный подарок
Матч Швеция-Франция начинается в 21.45, в то время, как развлекательная программа УЕФА начинается в 18.45, а также продолжится после завершения матча.
Задание
Итак, по поводу вышеуказанного события мы решили написать несколько программ, которые бы выводили текст «1 year on #habr!». Ну почти «Hello world!» то есть. Написать-то мы их написали, но вот, к сожалению, что-то в них не работает. Или работает не так. В общем, не выводят они то, что требуется. Нам кажется, что каждую из программ можно исправить фиксом в буквально одной строке. Возможно, вы сможете это сделать? Ах да, на каких языках мы писали — тоже уже забыли. Придётся догадываться по ходу. За каждую решенную задачу — 1 балл.
var howManyYears = 1;
howManyYears += "1";
howManyYears -= "1";
alert(howManyYears + " year on #habr!");
howManyYears = 1
if (howManyYears =! 0)
puts "#{howManyYears} year on #habr!"
end
#include <iostream>
#include <vector>
int main()
{
std::vector<int> monthes;
// we are here from 06/2011 - 12 monthes
monthes.push_back(06); monthes.push_back(07);
monthes.push_back(08); monthes.push_back(09);
monthes.push_back(10); monthes.push_back(11);
monthes.push_back(12); monthes.push_back(01);
monthes.push_back(02); monthes.push_back(03);
monthes.push_back(04); monthes.push_back(05);
std::cout << monthes.size() / 12 << " year on #habr!";
return 0;
}
[regex]::replace('1 year on $habr!','$','#')
#include <stdio.h>
int main()
{
int years = 0;
printf("%d year%s on #habr!", ++years, years == 1 ? "" : "s");
http://www.infopulse.com.ua/eng/Career/Vacancies/Software-Development/
return 0;
}
SET X, 0
:start
SET A, [string+X]
IFE A, 0
SET PC, end
BOR A, 0x7000
SET [0x8000+X], A
ADD A, 1
SET PC, start
:string dat "1 year on #habr!",0
:end
SET PC, end
Бонусное задание
Возможно, вы заметили ссылочку в задании №5 (кстати, почему её наличие не ломает компиляцию кода на этом языке?). Так вот, один дополнительный бонусный балл могут получить те люди, которые среди вакансий по этой самой ссылке найдут интересную для себя и пришлют в период конкурса своё резюме по адресу habrahabr-contest@infopulse.com.ua (не забудьте указать твиттер-аккаунта, от которого было опубликовано основное решение). Если вам понравились задачи в этом конкурсе — понравятся и вакансии (там такие задачи встречаются ежедневно, даже намного интереснее). А нам нравятся люди, которые решают подобные задачи. Такой себе тест на взаимную симпатию. И один бонусный балл в конкурсе.
Правила конкурса
Ответы нужно опубликовать где-нибудь в Интернете (pastebin или Google Docs вполне сойдут), а ссылку на них бросить в твиттере. Твит со ссылкой должен содержать также текст "#habr @Infopulse_ukr". Ответ на каждую задачу должен быть в следующем формате:
№ задания
Язык программирования
№ строки с ошибкой (порядок нумерации строк - с единицы)
Исправленная строка
Объяснение исправления
Пример:
1
C++
12
printf("1");
Число "1" взято в двойные кавычки, поскольку первым аргументом функции printf является строка.
Ответы на задачи должна разделять пустая строка. Принимаются только ответы, отправленные вышеописанным образом в вышеописанном формате. Ответы в духе «написать в первой строке print и выход» или «сразу goto на строку с print» — не проходят, должна быть именно исправлена ошибка в оригинальном коде, с сохранением логики его алгоритма. Срок приёма ответов — 2 суток с момента публикации поста. Наличие аккаунта на Хабре для участия необязательно. Приз получит человек, набравший максимальное количество баллов (если таких будет несколько — первый из них). Победитель будет объявлен в воскресенье, 17-го июня. Приз будет вручен в понедельник, 18-го июня.
Всем удачи. Поехали.
Автор: tangro