Здесь есть несколько вопросов о том, как округлить значение до известного кратного. Например, есть , но это показывает, как округлить значение до заданного множителя (например, от раунда 9 до кратного 5 даст 10). Я хочу округлить значение до ближайшего коэффициента заданного числа. Для примера позволяет говорит, что я хочу, чтобы округлить значение до ближайшего фактора 48.Как округлить значение UP до ближайшего коэффициента числа
Factors of 48: 1, 2, 3, 4, 6, 8, 12, 16, 24, 48
Если мое значение 9 Я хотел бы округлить до 12. Единственный способ, которым я знаю, чтобы сделать это с грубой force:
class Program {
static void Main(string[] args) {
const int clock = 48;
int value = 9;
while(value < clock && (clock % value) != 0) {
value++;
}
Console.WriteLine(value);
}
}
Это работает нормально, но это не умно или эффективно, по крайней мере, я подозреваю, что так оно и есть. Есть ли лучший способ округлить число до коэффициента базового номера, кроме грубой силы?
Уточнено постановку задачи и решать, почему поставляется ссылка дубликатом вопрос не применим. –
Lame, что это было закрыто как обман, но дублированный вопрос и решение, на которые ссылается, НЕ обращаются к моей проблеме. Дэвид, ты прочитал мой фактический вопрос или основал свое решение только на титул? –
Пришел сюда, ища то же самое. Разочаровать, чтобы найти это неправильно закрытым. – mcallinder