有一根长度为321米的钢材料,要将它截取成两种规格a、b的长度分别为17米和27米的短料,每种至少 1 段,问分隔成 a,b 各多少段后,剩余的残料 r 最少?分析:该题利用“试凑法”通过二重循环求残料 r 的最小值(正数),残料不可能是负数。
Dim a%, b%, r!, ia%, ib%
r = 321 ‘ 最小值初值取钢材料的长度
For b = 1 To 321 / 27 ‘b最多的段数
For a = 1 To (321-b*27) / 17 ‘a最多的段数
t = 321 -b * 27 - a * 17 ‘ 当前的残料
If t > 0 And t < r Then
r = t ‘ 求最短的残料
ia = a ‘ 最短残料时a的段数
ib = b ‘ 最短残料时b的段数
End If
Next a
Next b
Dim a%, b%, r!, ia%, ib%
r = 321 ‘ 最小值初值取钢材料的长度
For b = 1 To 321 / 27 ‘b最多的段数
For a = 1 To (321-b*27) / 17 ‘a最多的段数
t = 321 -b * 27 - a * 17 ‘ 当前的残料
If t > 0 And t < r Then
r = t ‘ 求最短的残料
ia = a ‘ 最短残料时a的段数
ib = b ‘ 最短残料时b的段数
End If
Next a
Next b