我们先来看看,这道题目关键点是由哪些部分组成的呢?
立方体的长宽高(L、W、H)
三维(即三方向)
以及n(n=LxWxH ,n即为容量)
最终求n条件下的摆放方案
重新理一下,这道题就可以重新理解为:
一个容量为2021041820210418的立方体有哪些“体型”,以及对应的“体型”有哪些不同的摆放方案?
这样分析,这就是一道通过“暴力”编程手段计算的排列组合题。而编程的思路可以寻溯到母题——“寻找素数”,找出给定n数据的最简公约数,同时进行不同组合(这里就用到排列组合的优化算法)。
编程思路
1.三个元素——即三边。
2.两个分解求公约数循环——即拆解LxWxH中两个乘号。
3.笔者在这次编程中采用long long int 声明n=2021041820210418以此来赋值初始化。超过1M的数据可以尝试考虑用全局声明。
4.排列组合优化部分:若a、b、c三者相等,为一种情况;a、b、c三个有两个相等,则独立的哪个有三种放法;a、b、c三个有两个相等,则独立的有三种放法;a、b、c三个有两个相等,则独立的哪个有三种放法。
5.a、b、c之间关系始终要a<=b<=c。(否则可能出现问题越界)
<