我正在创建一个将html产品目录转换为PDF的Web应用程序。我试图根据产品数量计算页数,将函数传递给产品总数并返回页数的整数。
由于显示横幅,产品数量会在不同页面上发生变化。
提供目录页数的更直观的示例:
1 page: [8]
2 pages: [8][12]
3 pages: [8][16][12]
4 pages: [8][14][14][12]
5 pages: [8][14][14][16][12]
6 pages: [8][14][14][14][14][12]
我无法绕过这个,我的数学和算法技能都达不到。如果有人能够对我应该走的方向有所了解,我真的很感激。
答案 0 :(得分:2)
逻辑上,您将首先放置第一页,然后放置最后一页,然后检查总数是否为奇数,然后添加middles。
def ass(num):
#Check for negative number
if num <= 0: return
#This list will be returned, start with 8, since it always has 8
ret = [8]
#If only on number, then return
if num == 1: return ret
#add 14s in the middle; even need total-2, odd number needs total-3
to_add = num - 2 if num % 2 == 0 else num - 3
for i in range(to_add):
ret.append(14)
#check for second to last if odd, we need 16 appended
if num % 2 != 0:
ret.append(16)
#Final 12
ret.append(12)
return ret