极客小将

您现在的位置是:首页 » 编程竞赛真题

资讯内容

2021蓝桥杯python组货物摆放试题

极客小将2022-04-07-
试题c:货物摆放本题总分:10分【问题描述】小蓝有一个超大的仓库,可以摆放很多货物。现在,小蓝有〃箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。小蓝希望所有的货物最终摆成一个大的

试题c:货物摆放

本题总分:10分

【问题描述】

小蓝有一个超大的仓库,可以摆放很多货物。

现在,小蓝有〃箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝

规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、

宽、高。

小蓝希望所有的货物最终摆成一个大的立方体。即在长、宽、高的方向上

分别堆L、W、〃的货物,满足〃 = LxWx〃。

给定人请问有多少种堆放货物的方案满足要求。

例如,当〃 =4 时,有以下 6 种方案:1x1x4、1x2x2、1x4x1、2x1x2、

2 x 2 x 1> 4x 1 x lo

请问,当〃 =2021041820210418 (注意有16位数字)时,总共有多少种

方案?

提示:建议使用计算机编程解决问题。


答案:


import time

 

start = time.perf_counter()

 

n = 4    #2021041820210418

ans = []    #  记录所有能把N整除的整数

for i in range(1, int(n ** 0.5) + 1):

    if n % i == 0:

        ans.append(i)

        ans.append(n // i)

case = set() #以元组形式记录符合条件的每种方案set()可以去重

#print(ans)

for i in ans:

    for j in ans:

        for k in ans:

            if i * j * k == n:

                case.add((i, j, k))

print(len(case)) #元组个数即答案

 

end = time.perf_counter()

print('Running time: %s Seconds' % (end - start))


网友点评

共有5条评论来说两句吧...

在线客服