Да, этот вариант проще, чем мой. Хоть он и требует больше операторов сравнения (но ведь в условия вписывается), зато, действительно, сложность его не зависит от делителя (который к тому же, вообще, может быть переменной).
Вообще, ясно, что этим коэффициентом вы решаете проблему x == n. Во всех случаях, когда граница оказывается целым числом, ее нужно отнести к следующему интервалу, а в этом случае - к предыдущему (например, при n=4, k=100 формула [x*n/k] будет задавать границы 0, 25, 50, 75, 100. Каждая граница, кроме 100 относится к тому интервалу, который в ней начинается, а 100 относится к интервалу, который в ней заканчивается. Вот это граничное условие хорошо решить с помощью if: если x == k, то номер интервала = n - 1, иначе вычислять по формуле безо всяких коэффициентов
Ну, я так и подумал, что ошибка в задании :) Но отфонарный коэффициент 0.99 в формуле не играет. Проверьте на n=3, k=1000, x=334 должен относиться к интервалу 1, а из-за такого коэффициента относится к 0
Вообще-то, приведенная формула не соответствует заданию. По заданию при n=3, k=100 получаются следующие интервалы [0, 33), [34, 50), [50, 100], а по формуле - [0, 33), [34, 66), [67, 100]
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.