М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
aazzziizz
aazzziizz
01.05.2020 05:42 •  Информатика

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

👇
Ответ:
Valeriag200034
Valeriag200034
01.05.2020

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+…, чтоб
4,8(10 оценок)
Ответ:
fatima6969
fatima6969
01.05.2020

N = int(input('Введите число N'))

sum = 0

add = 2

k = 0

while sum < =N:

sum += add

add += 2

k += 1

print(k)

Объяснение:

У меня реализация попроще, чем в предыдущем ответе, но вроде бы тоже правильная :)

Мы видим, что к сумме постоянно прибавляется число, на 2 большее, чем предыдущее, начиная с двух. Это и есть переменная add: изначально она равна 2, то есть на первом проходе цикла к сумме прибавится 2. После этого, в этом же цикле значение переменной add станет равно 4 (7-я строка), поэтому на втором проходе к сумме прибавится 4, и так далее. В итоге получаем правильную сумму: 2 + 4 + 6 + ...

Переменная k - это как раз искомое количество слагаемых этой суммы. Каждый раз, когда к сумме прибавляется новое слагаемое, она увеличивается на 1.

4,4(5 оценок)
Открыть все ответы
Ответ:
ardolg
ardolg
01.05.2020

1₂ = 1₁₀

10₂ =2₁₀

11₂ = 3₁₀

100₂ = 4₁₀

101₂ = 5₁₀

110₂ = 6₁₀

111₂ = 7₁₀

1000₂ = 8₁₀

1001₂ = 9₁₀

1010₂ = 10₁₀

1011₂ = 11₁₀

1100₂ = 12₁₀

1101₂ = 13₁₀

1110₂ = 14₁₀

1111₂ = 15₁₀

это таблица для перевода координат точек в 10-ную систему

Объяснение:

1₂ = 1*2⁰ = 1₁₀

10₂ = 0*2⁰ + 1*2¹ = 2₁₀

11₂ = 1*2⁰ + 1*2¹ = 3₁₀

100₂ = 0*2⁰ + 0*2¹ + 1*2² = 4₁₀

101₂ = 1*2⁰ + 0*2¹ + 1*2² = 5₁₀

110₂ = 0*2⁰ + 1*2¹ + 1*2² = 6₁₀

111₂ = 1*2⁰ + 1*2¹ + 1*2² = 7₁₀

1000₂ = 0*2⁰ + 0*2¹ + 0*2² + 1*2³ = 8₁₀

1001₂ = 1*2⁰ + 0*2¹ + 0*2² + 1*2³ = 9₁₀

1010₂ = 0*2⁰ + 1*2¹ + 0*2² + 1*2³ = 10₁₀

1011₂ = 1*2⁰ + 1*2¹ + 0*2² + 1*2³ = 11₁₀

1100₂ = 0*2⁰ + 0*2¹ + 1*2² + 1*2³ = 12₁₀

1101₂ = 1*2⁰ + 0*2¹ + 1*2² + 1*2³ = 13₁₀

1110₂ = 0*2⁰ + 1*2¹ + 1*2² + 1*2³ = 14₁₀

1111₂ = 1*2⁰ + 1*2¹ + 1*2² + 1*2³ = 15₁₀

4,5(21 оценок)
Ответ:
Boikomariana12
Boikomariana12
01.05.2020

1₂ = 1₁₀

10₂ =2₁₀

11₂ = 3₁₀

100₂ = 4₁₀

101₂ = 5₁₀

110₂ = 6₁₀

111₂ = 7₁₀

1000₂ = 8₁₀

1001₂ = 9₁₀

1010₂ = 10₁₀

1011₂ = 11₁₀

1100₂ = 12₁₀

1101₂ = 13₁₀

1110₂ = 14₁₀

1111₂ = 15₁₀

это таблица для перевода координат точек в 10-ную систему

Объяснение:

1₂ = 1*2⁰ = 1₁₀

10₂ = 0*2⁰ + 1*2¹ = 2₁₀

11₂ = 1*2⁰ + 1*2¹ = 3₁₀

100₂ = 0*2⁰ + 0*2¹ + 1*2² = 4₁₀

101₂ = 1*2⁰ + 0*2¹ + 1*2² = 5₁₀

110₂ = 0*2⁰ + 1*2¹ + 1*2² = 6₁₀

111₂ = 1*2⁰ + 1*2¹ + 1*2² = 7₁₀

1000₂ = 0*2⁰ + 0*2¹ + 0*2² + 1*2³ = 8₁₀

1001₂ = 1*2⁰ + 0*2¹ + 0*2² + 1*2³ = 9₁₀

1010₂ = 0*2⁰ + 1*2¹ + 0*2² + 1*2³ = 10₁₀

1011₂ = 1*2⁰ + 1*2¹ + 0*2² + 1*2³ = 11₁₀

1100₂ = 0*2⁰ + 0*2¹ + 1*2² + 1*2³ = 12₁₀

1101₂ = 1*2⁰ + 0*2¹ + 1*2² + 1*2³ = 13₁₀

1110₂ = 0*2⁰ + 1*2¹ + 1*2² + 1*2³ = 14₁₀

1111₂ = 1*2⁰ + 1*2¹ + 1*2² + 1*2³ = 15₁₀

4,4(74 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ