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

相关推荐

05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务