我需要一个简单的数学算法(或者不是)。
如下: 我有两个数字a和b,需要找到更接近b,c的较小数字。 这样“a%c == 0”
如果“a%b == 0”,则c == b
为什么? 我的屏幕尺寸为x像素。并且容器具有像素y,使得y> 0。 X
我想计算滚动的数量,这样我就可以在屏幕上看到我的容器,而不会浪费空间。 我想要滚动查看。
根据我的屏幕以及查看整个容器的频率,我需要知道我需要滚动多少。
答案 0 :(得分:2)
这可以帮到你吗? (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。
中答案 1 :(得分:0)
问题是,a
和b
会找到最大的c
c <= b
c*k = a
的k
第一个约束在k
上设置下限,最大化c
相当于在给定第二个约束时最小化k
。
k
的下限由
a = c*k <= b*k
所以k >= a/b
。因此,我们只查找k
的最小a
,例如<{1}}。
if (b > a) return a;
for (int k=a/b; k<=a; ++k)
if (a % k == 0) {
return a/k;
}
}