关注
第一题,等式两边同乘以最大公约数之后,设三个不相同的数之后最小的数为x,其取值范围为[0,「n/(3*k)],在此范围内循环,内循环开始先确定y={a*x + b}, a为大于1的自然数,b为小于x的自然数,且y的值满足大于x且z大于y且x+y+z = n/k,然后判断y与z是否互质。这个算法利用先验条件避免了三个数字相同但是顺序不同的情况,因为x,y,z是对称的。
第二题,利用逆推的思想,本题纯用数学推导,无任何编程思想。7由(8,1)(2,9),(7,0)(不分前后顺序,即pair(1,8)包括81和18)得到,得到两位数中所有的幸运数字,再根据两位数中的幸运数字逆推出三位数中的幸运数字,比如18,要想得到8必须要有8或者9(for i in [8,9]),8或9可能来自高位可能来自低位(for j in [0, 1])。例如,三位数经过计算相邻数之差的绝对值之后要得到18 ,则个位数或者十位数必须是8或者9才能得到(因为经过邻数之差的绝对值计算之后值总是非严格单调递减的),例如个位是9,则十位必须是1才能得到8,相应的百位必须是2才能得到1,得到一个三位幸运数219。最后得到10^N内所有的幸运数字数组,根据区间最小值确定数量,时间复杂度为O(N),N为区间最大值的最高位数。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 笔试 #
2336633次浏览 27272人参与
# 谈薪时HR压价该怎么应对 #
187821次浏览 2992人参与
# 牛友故事会 #
494910次浏览 11445人参与
# 小米提前批笔试难吗 #
30406次浏览 335人参与
# 机械只有转码才有出路吗? #
122645次浏览 1584人参与
# 腾讯云智研发工作体验 #
17730次浏览 129人参与
# 高学历就一定能找到好工作吗? #
44007次浏览 568人参与
# 硬件打工人的必备素养 #
12971次浏览 80人参与
# 找工作有哪些冷知识 #
10346次浏览 143人参与
# 如果再来一次,你还会学硬件吗 #
117321次浏览 1383人参与
# 你觉得材料专业有必要实习嘛 #
10845次浏览 55人参与
# 机械人值得去的车企 #
13357次浏览 109人参与
# 通信/硬件公司求职体验 #
101260次浏览 793人参与
# 国企和大厂硬件兄弟怎么选? #
117185次浏览 1648人参与
# 实习期间如何提升留用概率? #
24598次浏览 341人参与
# 机械人,你最希望上岸的公司是? #
157951次浏览 1854人参与
# 非技术er求职现状 #
49915次浏览 364人参与
# 你的秋招第一面感觉怎么样 #
63753次浏览 528人参与
# 生物制药/化工校招攻略 #
38170次浏览 270人参与
# 通信/硬件求职避坑tips #
48455次浏览 478人参与