alarm
Задайте вопрос
Информатика
achieve

Дано число A (> 1). Вывести наибольшее из целых чисел K, для которых сумма 1 + 1/2 + … + 1/K будет меньше A, и саму эту сумму. Решить задачу используя циклическую конструкцию while. ПИТОН

ответы: 1
Зарегистрируйтесь, чтобы добавить ответ
Ответ:

с постусловием:

def F(k):

if k == 1: return 1

return 1/k + F(k-1)

A = float(input('Введите A: '))

i = 1

while True:

s = F(i)

if s > A: break

s1 = s

i += 1

print('Наибольшее K =', i-1)

print('Сумма при данном К = ', s1)

Или с предусловием, но это менее эффективно с точки зрения вычислительных ресурсов:

def F(k):

if k == 1: return 1

return 1/k + F(k-1)

A = float(input('Введите A: '))

i = 0

s = 0

while s < A:

i += 1

s = F(i)

print('Наибольшее K =', i-1)

print('Сумма при данном К =', F(i-1))

70
Baroni
Чтобы ответить необходимо зарегистрироваться.

Другие вопросы: - Информатика

посчитайте пж как тут ​

Сноски. Урок 2Определи причину н

Який оператор використовують для

Всі двоцифрові числа кратні Var-

80 поинтов 1 11Складіть

посчитайте сделать 2 задачи по и

Контакты
Реклама на сайте