Оберните код в тег code (кнопка </> в редакторе). Тогда символы всякие парсер не съест.
И еще, не хорошо редактировать вопрос на совершенно другой, после того, как на него уже ответили. Правильнее задать новый вопрос.
А так, одним math.h вы не обойдетесь. Вам надо еще с какой-то библиотекой слинковаться, ибо хедеры содержат только объявления функций. Обычно math идет как часть libc. Где оно у вашего компилятора и как его подключить - я не знаю. Гуглите "libc <ваша среда разработки>".
Dyikot, Еще раз, медленно: вы реализуете функции exp(x) и ln(x) через ряды (чуть сложнее с логарифмом, есть ряд для f(y) = ln((1+y)/(1-y)), и y надо сначала найти, чтобы (1+y)/(1-y) = x)
im_noob, Ничего не понял. X==Y, в общем-то, можно заменить на X ^ Y == 0, а X^Y выразить через битовые И, ИЛИ и НЕ. При чем тут swap и сдвиги, я не знаю.
Стоп, стоп, стоп. Зачем вам проверять, отдельно что a=0, size-1, но не делать проверок по b.
Если вы не делаете каемки вокруг поля (индексация с 1, массив размером size+2 x size+2), то надо внутри for по i проверять, что 0 <= a+dx[i] < size и 0 <= b+dy[i] < size.
impressive17, Ну тупо, если в переменной записано 123, то мы считаем, что там 1.23. Если там записано 1234567, мы считаем, что на самом деле там 12345.67. Грубо говоря, вы храните в переменной не рубли, а копейки. Тогда целое значение в копейках соответствует фиксированной запятой для рублей. Количество знаков после запятой вы можете поставить любым.
Надо только аккуратно 2 таких переменных перемножать или делить друг на друга.
У вас в примере все коэффициенты целые. Откуда у вас там вообще запятая вылезла?
Денис Аникин, Спросите у сокурсников, может все-таки, давали где-то списки? Напишите учителю, что "как так-то!?". Если не будет реакции, ругайтесь на него на кафедре, в деканате. Только трижды сначала убедитесь, что списки не давали на паре, которую вы пропустили, или в качестве ДЗ.
Проблема только в длинной конструкции? Никак без нее. FirstLib:: не надо, так как вы сделали using namespace FirstLab. А вот назвнаие класса и метода писать придется всегда.
Еще, не надо включать через include cpp файл. Включайте хедер (.h файл), в котором есть только декларация классов и функций. Потом собирайте какой-нибудь системой сборки, типа cmake (есть даже под винду). Или руками собирайте из всех файлов объектники передав g++ ключ -c. И потом линкуйте объектники передав их все g++.
Никита, Ваш алгоритм на тесте из всех букв "a" будет работать за n*m.
Можно попробовать не проверять equals и надеятся, что у вас достаточно хороший хеш. Но может не повезти. Если будут неправильные ответы, то можно будет попробовать поменять X, или еще лучше добавить хешей, с другим значением X и проверять на равенство все хеши.
Еще, я бы посоветовал реализовать другой алгоритм поиска подстроки, например КМП или Бойера-Мура.
Никита, Надо хеш везде считать по модулю. Можно считать по модулю 2^32 - для этого все переменные и константы в вычислении хеша должны быть unsigned int. Там тоже будет переполнение, но оно безобидное и будет как будто вы берете все по модулю 2^32.
Во-первых, конструкция c.index путает. Код будет и короче и понятнее, если сделать тупо if else вместо min. В одной ветке берем i-1, в другой - i-2.
Во-вторых, вместо хранения списка посещенных цветков, вам надо для каждого цветка запомнить, какой из двух предыдущих дал минимум. И потом в цикле с последнего цветка надо пропрыгать по этим указателям, чтобы получить путь.
Поскольку вы на каждой итерации по i создаете список - ваше текущее решение работает за квадрат.
Восстановление ответа в конце, как я сказал, будет в итоге работать за линию.
Вася Покрышкин, Там 100% измерения L2=L3=7 должны быть. Значит у вас измерения не под 120 градусов идут в компасе.
Смотрите, если там взять 120 градусов между измерениями и повернуть эллипс на 90 градусов, то длина L2 будет (cos(120)*4)^2+(sin(120)*2)^2 и это даст 7. А корень, соответственно 2,64575. Перепроверьте, что измерения стоят точно.