在小屏幕中查看更大容器的算法

时间:2011-10-20 23:05:26

标签: algorithm

我需要一个简单的数学算法(或者不是)。

如下: 我有两个数字a和b,需要找到更接近b,c的较小数字。 这样“a%c == 0”

如果“a%b == 0”,则c == b

为什么? 我的屏幕尺寸为x像素。并且容器具有像素y,使得y> 0。 X

我想计算滚动的数量,这样我就可以在屏幕上看到我的容器,而不会浪费空间。 我想要滚动查看。

根据我的屏幕以及查看整个容器的频率,我需要知道我需要滚动多少。

2 个答案:

答案 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)

问题是,ab会找到最大的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;
    }
}