Вопрос:

Напишите функцию math_round_to_int(num), которая принимает положительное число с плавающей точкой num, округляет его до целого по математическим правилам, и возвращает результат. Примечание 1. Математические правила округления: если дробная часть числа меньше 0.5, то округляем его в меньшую сторону. В противном случае округляем число в большую сторону. Например: 8.25 ≈ 8 8.5 ≈ 9 8.75 ≈ 9 Примечание 2. Приведённый ниже код: print(math_round_to_int(1.52)) print(math_round_to_int(0.459)) print(math_round_to_int(10.0)) должен выводить: 2 8 10

Ответ:

Решение:

Для округления числа по математическим правилам, если дробная часть числа меньше 0.5, то округляем его в меньшую сторону, а если больше или равна 0.5, то в большую.

Функция math_round_to_int(num) должна реализовывать эту логику. В Python для этого можно использовать функцию round(), но она округляет .5 к ближайшему четному числу. Поэтому нужно использовать другое решение, например, добавить 0.5 к числу и затем отбросить дробную часть (для положительных чисел).


import math

def math_round_to_int(num):
if num >= 0:
return math.floor(num + 0.5)
else:
return math.ceil(num - 0.5)

print(math_round_to_int(1.52)) # Ожидаемый результат: 2
print(math_round_to_int(0.459)) # Ожидаемый результат: 0
print(math_round_to_int(10.0)) # Ожидаемый результат: 10
print(math_round_to_int(8.25)) # Ожидаемый результат: 8
print(math_round_to_int(8.5)) # Ожидаемый результат: 9
print(math_round_to_int(8.75)) # Ожидаемый результат: 9

Примечание: Приведённый в задании код с вызовами print(math_round_to_int(1.52)), print(math_round_to_int(0.459)), print(math_round_to_int(10.0)) должен выводить:

  1. 1.52 округляется до 2.
  2. 0.459 округляется до 0.
  3. 10.0 округляется до 10.

Ответ: Код функции math_round_to_int(num) приведен выше. Вывод кода: 2, 0, 10.

Подать жалобу Правообладателю