この小さなパズル (アルゴリズム) を解決しようとしています: N 個の画像アイコンがあり、それらをユーザーの画面に均等に配置したいと考えています。言って、私はそれらをテーブルに入れました。画像が 1 つの場合、テーブルには 1 つのセルが存在します。2 の場合 - 2 列の 1 行、3 の場合 - 1 行と 3 列、4 の場合 - 2 行、2 列... というように、行のスペースがなくなるまで続けます。行。
私はこれのアルゴリズムを理解しようとしていますが、おそらくこれはすでにどこかに解決策があるものですか?
私の試みはこれまでのところ次のようなものです:
obtain_max_rows()
obtain_visible_columns()
if (number_of_pictures > max_rows*max_columns)
{
columns = roundup(number_of_pictures/max_rows)
for(max_rows){generate row;for columns{generate column}}
}
else
{
**here comes to trouble...**
}
ただし、このロジックは少しばかげています。最初の画面に 12 枚の写真があり、もう 1 つの画面に 2 枚の写真があり、8/6 などのようにバランスを取ろうとしている場合を考える必要があります。