#algorithm
#алгоритм
Вопрос:
Мне нужен математический алгоритм (или нет), простой (или нет, тоже).
Это выглядит следующим образом: у меня есть два числа a и b, и мне нужно найти меньшее число ближе к b, c. Такое, что «a% c == 0»
Если «a% b == 0», то c == b
Почему это так? Мой экран имеет размер x пикселей. И контейнер имеет пиксели y такие, что y> x .
Я хочу рассчитать, сколько мне нужно прокрутить, чтобы я мог видеть свой контейнер на своем экране, не тратя впустую пространство. Я хочу обязательно перейти к просмотру.
Мне нужно знать, сколько мне нужно свернуть, в соответствии с моим экраном и как часто просматривать весь мой контейнер.
Ответ №1:
Не могли бы вы помочь? (Java-код)
int a = 2000;
int b = 300;
int c = 0;
for (int i = b; i > 0; i--) {
if ( (a % i) == 0) {
c = i;
break;
}
}
Результат будет на c.
Ответ №2:
Задача требует, учитывая a
и b
, найти наибольшее c
такое, что
c <= b
c*k = a
для некоторыхk
Первое ограничение устанавливает нижнюю границу k
, а максимизация c
эквивалентна минимизации k
с учетом второго ограничения.
Нижняя граница для k
задается
a = c*k <= b*k
и так k >= a/b
. Поэтому мы просто ищем наименьшее k
, которое является делителем a
, например
if (b > a) return a;
for (int k=a/b; k<=a; k)
if (a % k == 0) {
return a/k;
}
}