题解 | #移动 0#

立方根

http://www.nowcoder.com/practice/ada3edb4700143f4917d3e631ad2481a

n^3-(n-1)^3=(n-(n-1))(n^2+n(n-1)+(n-1)^2)=n^2+n(n-1)+(n-1)^2; (n-1)^3-(n-2)^3=(n-1)^2+(n-1)(n-2)+(n-2)^2; 两式相减得: n^3-(n-1)^3-((n-1)^3-(n-2)^3)=6(n-1); ((n-1)^3-(n-2)^3)-((n-2)^3-(n-6)^3)=6(n-2); ... (2^3-1^3)-(1^3-0^3)=6(2-1); 累加: n^3-(n-1)^3-(1^3-0^3)=6(n-1)+6(n-2)+...+6(2-1); 我们设置一个参数m(n)=6(n-1)的累加; 及: n^3-(n-1)^3=6(n-1)+6(n-2)+...+61+1=m(n)+1; (n-1)^3-(n-2)^3=6(n-2)+6(n-3)+...+61+1=m(n-1)+1; ... 1^3-0^3=6*0+1=m(1)+1; 累加: n^3=(m(0)+1)+(m(1)+1)...+(m(n)+1); 所以我们要知道立方根只要一直减去(m(n++)+1); 换成代码:

   int m = 1,num =1;
      do{
          n -=num;
          num += m*6;
          m++;
      }while(n>=num);
    return m-1;
    

其中num为(m(n)+1);

全部评论

相关推荐

03-12 21:00
中山大学 Ruby
点赞 评论 收藏
分享
醒工硬件:如果你想投硬件,可以考虑这么改: 1.个人荣誉没太有保留价值,除非一页凑不满 2.主修课程太多了,可以考虑删减一部分,或者分成硬件和嵌入式2个简历,侧重点不一样 3.个人技能放到学习经历下面,项目经历上面。学习一下AD画板,你有基础一两周也差不多学会了,面试官问你就说你会(总不能拉你实操吧),公司里一般用AD和Cadence比较多,AD好上手一些。增加常用仪器工具说明,例如示波器、信号发生器、电子负载、烙铁、风枪等 4.项目,项目可以多换换行,挤在一起不好阅读。可以说下红外那边用什么接口,蓝牙那边用什么接口,用了哪些关键技术点,多用术语。如果你投硬件,就增加项目1描述比重,降低项目2描述比重
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务