用户最多可以有20辆车。我有5个静态表格。基于用户选择我想合并pdfs
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 veh 3.有没有人帮我挑选逻辑表单用户应选择合并而不是写入20 if循环。
答案 0 :(得分:1)
首先要注意的是,一组表单将是单个表单1-5,或者是一些5表单和单个表单1-5。没有其他组合。它基本上就像你在计算base-5中的表格一样。
首先,根据需要处理尽可能多的5.pdf表单。如果表单的数量大于5,您将需要添加至少1个.pdf文件。如果表单的数量大于10,您将需要添加至少2个.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>
或者,如果您愿意,可以按照以下方式简化:
int numberOfFives = (formsCount / 5); // Integer division, so if formsCount = 4, numberOfFives = 0
int remainingForm = (formsCount % 5); // Remainder after division by 5
然后您将numberOfFives
5.pdf表单和单个remainingForm
。pdf表单添加到您的连续PDF中。
答案 1 :(得分:0)
看起来你想要重复减去小于我们等于目标的最大值。例如:
8: greatest is 5, 8-5=3
3: greatest is 3, 3-3=0, we're finished
8=5+3