Дано число A (> 1). Вывести наибольшее из целых чисел K, для которых сумма 1 + 1/2 + … + 1/K будет меньше A, и саму эту сумму.
Решить задачу используя циклическую конструкцию while. ПИТОН СРОЧНО
Ответы на вопрос
Ответил pinguinbird
2
Ответ с постусловием:
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))
Новые вопросы
Русский язык,
2 года назад
Русский язык,
2 года назад
Физика,
2 года назад
Химия,
2 года назад
Литература,
8 лет назад