关注
private long temp(long n){
//平方根
long len = (long)Math.sqrt(n);
//先使用n视图拼出正方形
/**
* (len-1)个 2火柴,一个4火柴,这是一列,共有len个这样的列
*/
long res = len*(4+(len-1)*2);
//还需要多少个
long other = n-len*len;
if(other==0)return res;
if(other<=len){
//只够补一行/列
res+=3+(other-1)*2;
}else {
res+=3+(len-1)*2;//补一行
other-=len;
res+=3+(other-1)*2;//补一列
}
return res;
}
我解释一下帖主第三题的几行代码:long len = (long)Math.sqrt(n);先视图用用n个小正方行拼出最大程度的大正方形,所以开方。long res = len*(4+(len-1)*2); 在纸上画一下,len-1个“直角火柴”(2),一矩形火柴(4),组成一列,共有len个这样的列,而且(4)重合的部分会补上最后的边。long other = n-len*len; 统计还剩下几个(最多能够拼出一个完整的行或者列)。res+=3+(other-1)*2;剩下的小方块数量够填充多长的列/行。
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习在多还是在精 #
32030次浏览 223人参与
# 我的求职进度条 #
74073次浏览 1034人参与
# 平安产险科技校招 #
415次浏览 0人参与
# 秋招踩过的“雷”,希望你别再踩 #
76934次浏览 1036人参与
# 实习下班不想学习,正常吗? #
18146次浏览 169人参与
# 你现在会用到哪些AI技能? #
3694次浏览 66人参与
# 未岚大陆求职进展汇总 #
5925次浏览 81人参与
# 你见过哪些工贼行为 #
15414次浏览 87人参与
# 你的房租占工资的比例是多少? #
63970次浏览 794人参与
# 校招谈薪一定要知道的事 #
12161次浏览 110人参与
# 反问环节如何提问 #
114698次浏览 2447人参与
# 找工作中的小确幸 #
24713次浏览 257人参与
# 顺丰求职进展汇总 #
62923次浏览 313人参与
# 小马智行求职进展汇总 #
13222次浏览 49人参与
# 你觉得什么岗位会被AI替代 #
15254次浏览 161人参与
# 如果不考虑收入,你最想做什么工作? #
32304次浏览 185人参与
# 大厂VS公务员你怎么选 #
22349次浏览 338人参与
# 非技术岗投递进展 #
157575次浏览 1314人参与
# 总结:哪家公司面试体验感最好 #
69749次浏览 416人参与
# 工作中,努力重要还是选择重要? #
206008次浏览 2086人参与
# 24届的你们现状如何了? #
98573次浏览 509人参与
# 机械只有转码才有出路吗? #
144552次浏览 1634人参与