最初に気付くのは、フォームのバンドルが単一のフォーム1〜5であるか、またはいくつかの5つのフォームと単一のフォーム1〜5であるということです。他の組み合わせはありません。基本的には、5進数でフォームを数えているようなものです。
まず、必要な数の5.pdfフォームを処理します。フォームの数が5を超える場合は、少なくとも1つの5.pdfファイルを追加する必要があります。フォームの数が10を超える場合は、少なくとも2つの5.pdfファイルを追加する必要があります。数が5未満になるまで、5.pdfフォームを継続的に追加することで、他の方法の中でも特にそれを行うことができます。
擬似コードでは、次のことができます。
List forms = new ArrayList();
int count = <number of vehicles>
while count > 0 {
if ( count >= 5 ) {
forms.add( "5.pdf" );
count = count - 5;
} else {
forms.add( "" + count + ".pdf" );
count = 0;
}
}
<forms now contains the list of all forms you need>
または、必要に応じて、次のように簡略化できます。
int numberOfFives = (formsCount / 5); // Integer division, so if formsCount = 4, numberOfFives = 0
int remainingForm = (formsCount % 5); // Remainder after division by 5
次に、連結されたPDFにnumberOfFives
5.pdfフォームと単一のremainingForm
.pdfフォームを追加します。