Project euler problem #255 довольно математичен. Я понял, как это делается для данного примера. Поскольку я новичок в Python, я не уверен, как обрабатывать значения дальнего диапазона. Ниже приводится решение, которое у меня есть. Но как это работает для 10^13 и 10^14?Project Euler # 255
def ceil(a, b):
return (a + b - 1)/b;
def func(a, b):
return (b + ceil(a, b))/2;
def calculate(a):
ctr = 1;
y = 200;
while 1:
z = func(a, y);
if z == y:
return ctr;
y = z;
ctr += 1;
result = sum(map(calculate, xrange(10000, 100000)))/9e4;
print "%.10f" % result;
Это дает 3.2102888889.
, пожалуйста, используйте отступы с четырьмя интервалами ... –