2011-10-20 7 views
4

私は数学的アルゴリズムを必要としているかどうかは簡単です(そうでない場合もあります)。小さな画面で大きな容器を表示するアルゴリズム

これは次のとおりです。 私は2つの数字aとbを持ち、b、cに近いほど小さい数字を見つける必要があります。 ような "%のC == 0" が

"%Bの== 0"、次いでC ==場合

Bなぜですか? 私の画面のサイズはxピクセルです。そして、コンテナは、y> xとなるようなピクセルyを有する。

スペースを無駄にせずに画面上にコンテナを表示できるように、どれくらいスクロールする必要があるかを計算します。 私は必然的に見るために転がりたい。

私は自分の画面と自分のコンテナ全体を表示する頻度に従って、どれくらい回転させる必要があるかを知る必要があります。

答えて

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になります。

0

問題は、第1の制約がkの下限置き、そして最大のcなどいくつかk

ため

  • c <= b
  • c*k = aことがわかり、ab与えられた、頼みますcを最大化することは、kを最小化することと同等ですtraint。 kため

    下限は

    a = c*k <= b*k 
    

    などk >= a/bによって与えられます。したがって、の約数である最小のkを探します。

    if (b > a) return a; 
    for (int k=a/b; k<=a; ++k) 
        if (a % k == 0) { 
         return a/k; 
        } 
    } 
    
関連する問題