题目描述

小蓝有一个超大的仓库,可以摆放很多货物。 现在,小蓝有n 箱货物要摆放在仓库,每箱货物都是规则的正方体。
小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。
小蓝希望所有的货物最终摆成一个大的立方体。即在长、宽、高的方向上分别堆L、W、H 的货物,满足n = L × W × H。
给定n,请问有多少种堆放货物的方案满足要求。 例如,当n = 4 时,有以下6
种方案:1×1×4、1×2×2、1×4×1、2×1×2、2×2×1、4×1×1。
请问,当n = 2021041820210418(注意有16 位数字)时,总共有多少种 方案?

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

解题思路:由于 n 数据的庞大,可以用 long 来储存,如果直接用三重 for 循环 来解题的话,大概需要 2h左右。

所以纯暴力破解是不讨好的,需要在此基础上添加一点点技巧。

由例题可看出:n = 4 的时候,L, W, H内出现的都是 n 的约数,即都能被 n 整除。所以我们不妨先寻找 n 的约数,再暴力破解。

1.寻找 n 的约数的代码如下:

 for(long i = 1; i*i <= n;i ++) {if(n % i == 0) {s.add(i);if(n / i != i) s.add(n / i);}}

即:我们在1 ~ n^(1/2) 这个区间内寻找约数,由于有s.add(n / i) 的存在后半部分的约数也一起存储了(例如 6 % 2 == 0,存入 2,6 / 2 = 3,也一起存入),我们没必要查找后半部分(如果查找则会重复)。

上述查找约数的部分大概需要循环 10^8 左右,计算机 1 s 左右就能办完。

2.需要用一个容器储存这些约数,我用的是 list 容器,这个还是比较好用的。

3.由于算式不能重复,我们直接利用三重for循环筛选符合体条件的约数即可,由于约数不是太多,三重for循环也用不了几秒时间。

理论成立完整代码如下:

import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args){long n = 2021041820210418L;List s = new ArrayList<Long>();for(long i = 1; i * i <= n; i ++) {if(n % i == 0) {s.add(i);if(n / i != i) s.add(n / i);}}int sum  = 0;for(int i = 0; i < s.size(); i ++)for(int j = 0; j < s.size(); j ++)for(int k = 0; k < s.size(); k ++) if((long)s.get(i) * (long) s.get(j) * (long) s.get(k) == n) sum ++;System.out.print(sum);}
}

货物摆放 (蓝桥杯) JAVA相关推荐

  1. 2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[题目下载.2013年(第4届)~2020年(第11届)] CSDN 蓝桥杯 专栏 2013年 第04届 蓝桥杯 Java B组 省赛真题详解及小结 ...

  2. 2018年 第09届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  3. 2020年 第11届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  4. java蓝桥杯凑算是,第七届蓝桥杯JAVA B组真题解析-凑算式(第三题)

    第七届蓝桥杯JAVA B组真题解析-凑算式(第三题) 凑算式 A+B/C+DEF/GHI =10 (如果显示有问题,可以参见[图1.jpg]) 这个算式中AI代表19的数字,不同的字母代表不同的数字. ...

  5. 蓝桥杯Java历年真题与答案_蓝桥杯大赛java历年真题及答案整理(闭关一个月呕心沥血整理出来的)...

    蓝桥杯大赛java历年真题及答案整理(闭关一个月呕心沥血整理出来的) 1蓝桥杯 java 历年真题及答案整理(闭关一个月,呕心沥血整理出来的)1. 算法是这样的,如果给定 N 个不同字符,将这 N 个 ...

  6. 2015年 第06届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  7. 2016年 第07届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  8. 2017年 第08届 蓝桥杯 Java B组 决赛真题详解及小结

    ​​​​​蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 ...

  9. 2019年 第10届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

最新文章

  1. Google浏览器(您的连接不是私密连接)解决方案
  2. 2018-2019-1 20165226 《信息安全系统设计基础》第4周学习总结
  3. 可能是最简单易懂的人工智能入门书
  4. 微软Edge扩展工具箱旨在将Chrome扩展带至Edge
  5. python处理文件夹_python文件及文件夹操作
  6. 漫谈CGI FastCGI WSGI
  7. SQLServer之深度分析跟踪
  8. werkzeug routing.Rule
  9. ionic 组件之二维码扫描
  10. Android Media Framework(1): 总纲
  11. 让部署到服务器上的springboot项目持续运行(nohup)
  12. LINUX下使用scp命令与其他机器远程交换文件
  13. Android显示PDF文件之PDFviewer
  14. 【深度学习】《动手学深度学习》环境配置
  15. mac切换网卡|IP
  16. PC端如何双开/多开微信(实测可用)
  17. 日常问题(bug)反馈/回复的标准格式
  18. Linux查看系统运行时间
  19. Elasticsearch索引分片的数量及大小分配策略
  20. 软件测试行业女生真的没有一席之地了吗,还能入行软件测试吗?

热门文章

  1. 明朝开国第一重臣李善长长子李祺之长子李芳后裔在松滋
  2. 登陆凯叔讲故事显示未链接服务器,凯叔用户暴涨的秘密
  3. Metronic 使用到的开源插件汇总
  4. FA-PEG-Silane 叶酸-聚乙二醇-硅烷 Silane-PEG2000-FA,PEG分子量2000
  5. 985南京大学,招生目录新增两个学院招收计算机研究生!
  6. 苏宁计算机笔试,苏宁笔试经验笔试写作
  7. HFSS学习记录——6.2扫频设置(Edit Frequency Sweep)
  8. 在eclipse中导入jor(开源报表)工程
  9. 大型圆弧怎么处理_大型弧形墙施工方法
  10. select 标签自定义样式