Усекретного агента джона есть особенная бумага: если в какую-то из клеток капнуть краской, то через секунду она окрасится полностью, а еще через секунду полностью окрасятся ее соседи по сторонам, и так далее. еще у секретного агента есть сын майкл. майкл взял кусочек такой бумаги и вырезал такую картинку: normalized ff2e47255772dd208624c445859efdc1bb1c82bf79a09572. затем он капнул краской в одну из клеток и засек время. через 7 секунд рисунок впервые окрасился полностью. в какую клетку майкл мог капнуть краской? если таких клеток несколько, укажите любую. в качестве ответа укажите адрес клетки в шахматной нотации, например, a5.
Как this в С++.
Обычный метод
class MyClass(object):
def mymethod(self, x):
return x == self._x
Классовые методы в Python занимают промежуточное положение между статическими и обычными. В то время как обычные методы получают первым параметром экземпляр класса, а статические не получают ничего, в классовые методы передается класс.
>>> class A(object):
def __init__(self, int_val):
self.val = int_val + 1
@classmethod
def fromString(cls, val):
# вместо self принято использовать cls
return cls(int(val))
[Del me plz]
Подписываюсь под каждым словом объяснения @Nelle987.
Заданные значения x = a+b и y = ab - подходят под описание теоремы Виета. А значит, мы можем свести задачу к поиску корней квадратного уравнения в целых действительных числах.
Хочу дополнить ответ @Nelle987 другой реализацией целочисленного квадратного корня, работающего на этапе компиляции.
Код:
#include <iostream>constexpr long long isqrt (long long value, long long sq = 1ll, long long dlt = 3ll){ return sq <= value ? isqrt(value, sq+dlt, dlt+2ll) : (dlt >> 1) - 1ll;}int main() { long long x, y; std::cin >> x >> y; auto d = x * x - 4 * y; if (d < 0) { std::cout << 0; return 0; } auto sqrt_d = isqrt(d); if (sqrt_d * sqrt_d != d) { std::cout << 0; return 0; } if ((x - sqrt_d) % 2 != 0) { std::cout << 0; return 0; } std::cout << (x - sqrt_d) / 2 << " " << (x + sqrt_d) / 2; return 0;}