/*题目: 货物摆放
* 例如:当n==4时:有以下 66 种方案:
* 1×1×4、1×2×2、1×4×1、2×1×2、2×2×1、4×1×1
* 请问,当 n = 2021041820210418n=2021041820210418 (注意有 1616 位数字)时,总共有多少种方案?
* */
/*核心思想:
* 1.三个数的乘积要想等于num的话,那么这三个数肯定都是numd的因子(能够被num整除)
* 2.找出num的所有因子存放到ArrayList中
* 3.找num的所有因子的技巧:先找到一个小因子,通过这个小因子,找到这个小因子对应的大因子
* 4.注意:Math.sqrt(num)会重复一个
* 5.三重循环遍历ArrayList,得到结果
* */
package Test;
import java.util.ArrayList;
public class C113 {
public static void main(String args[]) {
//常规思路
/*
long num = 2021041820210418l;
int count = 0;
for ( long i = 1 ; i < num ; i++ ){
for ( long j = 1 ; j < num ; j++ ){
for ( long k = 1 ; k < num ; k++ ){
if ( i * j *um ){
count++;
}
}
}
}
*/
//显而易见,这个算法的时间复杂的非常的大。计算机想要算出结果,可能需要几天的时间
//所以要另辟蹊径
//想想,三个数相乘要等于num,那么这三个数是不是都是num的因子,都能被num整除呢?
//上方的算法,三层for循环都是从1遍历到num,其中很多组合都是无效的
//简而言之,这些无效组合中的数不能同时被num整除,而有效的组合,任何一个数都能被num整除
//所以,如果我们能从num的因子里面去找组合,是不是时间复杂度就要小许多?
long num = 2021041820210418l;
//如果直接赋值,计算机默认数字是int类型,会报错。所以要在后面加'l',转换为long类型
//定义一个ArrayList数组,存放num的因子
ArrayList<Long> arr = new ArrayList<>();
//将num的因子存放到ArrayList数组中
//从1开始遍历,遍历到num的平方根结束。不需要把num遍历一遍,这样算法复杂都也非常大,重点看for循环里面的语句
for ( long i = 1 ; i <= Math.sqrt(num) ; i++ ){
//每一次循环都是先得到较小的因子,然后通过较小的因子得到较大的因子
if ( num % i == 0 ){
arr.add(i); //如果能被整除,就放到arr数组中-----放的是较小的因子
//!!!重点在这里,当i能被num整除的情况下,求出num关于i的另外一个除数n
//这样,for循环不需要从1遍历到num。可以通过较小的因子,求出另外一个较大的因子
long n = num / i;
//如果num = Math.sqrt(num)*Math.sqrt(num),那么由较小的因子求较大的因子时,会重复,要排除这种情况
if ( n != i ){ //当然,此时num,不会出现这种情况。如果num=4,就会出现这种情况
arr.add(n); //将较大的因子放入arr数组
}
}
}
//System.out.println(arr.size()); //num一共有128个因子
//三层for循环依次遍历即可。 128^3 = 2097152 计算机完全可以在短时间内算出结果
int count = 0;
for ( long i : arr ){
for ( long j : arr ){
for ( long k : arr ){
if ( i * j * k == num ){
count++;
}
}
}
}
System.out.println(count);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
准备蓝桥杯比赛的过程中,刷的一些真题和部分算法的学习
共109个文件
java:108个
test2:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 53 浏览量
2023-11-13
08:58:14
上传
评论
收藏 80KB ZIP 举报
温馨提示
准备蓝桥杯比赛的过程中,刷的一些真题和部分算法的学习
资源推荐
资源详情
资源评论
收起资源包目录
准备蓝桥杯比赛的过程中,刷的一些真题和部分算法的学习 (109个子文件)
C113.java 3KB
C103.java 3KB
C97.java 3KB
C96.java 3KB
C79.java 2KB
C68.java 2KB
C99.java 2KB
C100.java 2KB
Test1.java 2KB
searchInsert.java 2KB
C98.java 2KB
C105.java 2KB
isValid.java 2KB
C115.java 2KB
C5.java 2KB
C78.java 2KB
C75.java 2KB
C67.java 2KB
C104.java 2KB
C102.java 2KB
C8.java 2KB
Test0.java 2KB
C56.java 2KB
C50.java 2KB
C71.java 2KB
C30.java 1KB
C14.java 1KB
Test2.java 1KB
C114.java 1KB
C40.java 1KB
C106.java 1KB
C16.java 1KB
C76.java 1KB
C69.java 1KB
C111.java 1KB
C4.java 1KB
Test4.java 1KB
C22.java 1KB
C34.java 1KB
C19.java 1KB
C2.java 1KB
C80.java 1KB
C109.java 1KB
C29.java 1KB
C1.java 1KB
C31.java 1KB
C112.java 1KB
C28.java 1KB
C11.java 1KB
C101.java 1KB
C72.java 997B
C61.java 995B
C107.java 995B
C66.java 984B
C6.java 975B
C47.java 942B
C46.java 940B
C74.java 939B
C7.java 935B
C55.java 914B
C3.java 898B
C59.java 895B
javacode.java 889B
C52.java 873B
C41.java 857B
C110.java 839B
C63.java 824B
C17.java 820B
C23.java 818B
C64.java 815B
C108.java 800B
Test3.java 790B
C32.java 769B
C48.java 758B
C49.java 754B
C18.java 731B
C36.java 712B
C13.java 709B
C33.java 679B
C20.java 670B
C39.java 670B
C26.java 643B
C38.java 640B
C77.java 630B
C60.java 628B
C35.java 626B
C57.java 625B
C27.java 605B
C45.java 578B
C51.java 560B
C116.java 552B
C73.java 539B
C62.java 533B
C70.java 529B
C42.java 521B
C65.java 500B
C58.java 497B
C54.java 494B
C21.java 493B
C12.java 487B
共 109 条
- 1
- 2
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 6732
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- hdmi in视频采集,输出到hdmi out, 支持HDMI指令控制,支持TFTP远程下载图片
- 批量word文件内容替换工具1.0 (批量实现多个 Word 文档文件文字替换利器).exe
- Cartoon GUI Pack 1.2.zip
- 【数据集和代码】基于加速度传感器的步态识别行人分类实验(可做步态识别)
- 我分享个魔兽内存修改器
- Python毕业设计基于Django的网易云数据分析可视化大屏系统的设计与实现+使用说明+全部资料(优秀项目).zip
- mp3 idv2,idv1,frame分析工具
- 鹈鹕优化算法POA MATLAB源码, 应用案例为函数极值求解以及优化svm进行分类,代码注释详细,可结合自身需求进行应用
- Python毕业设计基于Django的网易云数据分析可视化大屏系统的设计与实现+使用说明+全部资料(高分项目).zip
- 蛇优化算法SO MATLAB源码, 应用案例为函数极值求解以及优化svm进行分类,代码注释详细,可结合自身需求进行应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功