Java 根据用户选择的表格选择表格

Java 根据用户选择的表格选择表格,java,Java,一个用户最多可以有20辆车。我有5个静态表单。根据用户选择,我想合并PDF 1.pdf-1 veh,2.pdf-2 veh,3.pdf-3 veh,4.pdf-4 veh,5.df-5 veh 如果用户拥有5辆以上的车辆,如6辆,则每个表格应容纳5.pdf+1.pdf,而不是其他组合,如3+3或2+3+1等。 20辆5+5+5+5,13辆5+5+3,7辆5+2,18辆5+5+5+3,3辆3。有谁能帮我找到一个逻辑来选择用户应该选择合并哪些表单,而不是编写20个if循环。看起来您需要反复减去小于等

一个用户最多可以有20辆车。我有5个静态表单。根据用户选择,我想合并PDF

1.pdf-1 veh,2.pdf-2 veh,3.pdf-3 veh,4.pdf-4 veh,5.df-5 veh

如果用户拥有5辆以上的车辆,如6辆,则每个表格应容纳5.pdf+1.pdf,而不是其他组合,如3+3或2+3+1等。
20辆5+5+5+5,13辆5+5+3,7辆5+2,18辆5+5+5+3,3辆3。有谁能帮我找到一个逻辑来选择用户应该选择合并哪些表单,而不是编写20个if循环。

看起来您需要反复减去小于等于目标值的最大值。例如:

8: greatest is 5, 8-5=3
3: greatest is 3, 3-3=0, we're finished
8=5+3

首先要注意的是,一组表单要么是单个表单1-5,要么是一些5-forms和单个表单1-5。不会有其他组合。基本上就像你在用5进制数表格一样

首先,根据需要处理尽可能多的5.pdf表单。如果表单数大于5,则至少要添加1个5.pdf文件。如果表单数大于10,则至少要添加2个5.pdf文件。除其他方法外,您可以通过不断添加5.pdf表单,直到您的计数小于5

在伪代码中,可以执行以下操作:

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>

然后您可以将
numberOfFives
5.pdf表单和单个
remainingForm
.pdf表单添加到连接的pdf中。

谢谢您的回复。pdf名称不是1.pdf、2.pdf、3.pdf、4.pdf、5.pdf。它们类似于a.pdf、b.pdf、c.pdf、d.pdf、e.pdf。如果pdf名称与上面的内容不同,则会出现问题。请让我知道。你只需要有一个从数字到PDF名称的映射即可。这可以通过多种方式完成,从java.util.Map到XML文件,或者其他任何方式。
int numberOfFives = (formsCount / 5); // Integer division, so if formsCount = 4, numberOfFives = 0
int remainingForm = (formsCount % 5); // Remainder after division by 5