nane2924329
?>

Python Напишите программу, которая определяет, сколько слагаемых должно быть в сумме 2+4+6+8+…, чтобы эта сумма оказалась больше некоторого данного натурального числа N на ПИТОНЕ

Информатика

Ответы

sergeyshuvalov

2 + 4 + 6 + ... + 2k - арифметическая прогрессия, значит мы можем найти сумму этого ряда по формуле суммы арифметической прогрессии, вынесем это в отдельную функцию :

def sumN(first, last):

   return (first + last) * ((last - first + 2) // 2) / 2

Дальше будем перебирать последний элемент для ряда, просто идти в цикле долго и глупо, поэтому зная, что функция суммы ряда из положительных чисел монотонно возрастающая, то найдем подходящий последний элемент, а значит и кол-во слагаемых с бинпоиска за логарифм вместо линии :

def sumN(first, last):

   return (first + last) * ((last - first + 1) // 2) / 2

N = int(input())

l = 1

r = 100000

res = -1

while l <= r :

   m = (l + r) // 2

   F = 2

   L = 2 * m

   if sumN(F,L) > N :

       res = m

       r = m - 1

   else :

       l = m + 1

print(res)

полный код :

def sumN(first, last):

   return (first + last) * ((last - first + 1) // 2) / 2

N = int(input())

l = 1

r = 100000

res = -1

while l <= r :

   m = (l + r) // 2

   F = 2

   L = 2 * m

   if sumN(F,L) > N :

       res = m

       r = m - 1

   else :

       l = m + 1

print(res)


Python Напишите программу, которая определяет, сколько слагаемых должно быть в сумме 2+4+6+8+…, чтоб

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Python Напишите программу, которая определяет, сколько слагаемых должно быть в сумме 2+4+6+8+…, чтобы эта сумма оказалась больше некоторого данного натурального числа N на ПИТОНЕ
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

thedoomsdatdcs36
ghjcnjtyjn64
terehin863
wwladik2606222
benonika
Aleksei
semenov-1970
ibarskova1542
srgymakarov
Oksana373
kartyshkinaaa
yurassolo747
vallium8354
Елена-Семенова
решите тест по информатике​
Serdechnaya636