笨鳥

          天道酬勤,思者常新;博觀約取,厚積薄發;心如止水,氣貫長虹;淡泊明志,寧靜致遠。
          posts - 10, comments - 0, trackbacks - 0, articles - 1

              問題描述如下:
                  “1到10的平方和為:1^2 + 2^2 + ... + 10^2 = 385,和平方為:(1 + 2 + ... + 10)^2 = 55^2 = 3025,他們之間的差為3025-385=2640,求1到100的和平方與平方和之間的差值?”

              代碼實現如下:

              /**
               * 求前n個自然數和平方與平方和之差
               * 
          @param n
               * 
          @return
               
          */

              
          private static int getDifference(int n) {
                  
          int first = 0;
                  
          int second = 0;
                  
          for (int i = 1; i <= n; i++{
                      first 
          += i * i;
                      second 
          += i;
                  }

                  
          return second * second - first;
              }
              可以得到答案25164150。

              我們還可以使用數學的方法來解此題。
              1^2 + 2^2 + ... + n^2 =n(n+1)(2n+1)/6
              (1+2+3+...+n)^2 =(n(n+1)/2)^2
              相關證明可以去具體的了解,如:
              (n+1)^3 -(n-1)^3 =6n^2+2提示:證明平方和公式,1到n的求和公式就不提示了
              給出代碼:

              private static int getDifference1(int n) {
                  
          return (n*(n+1)/2)*(n*(n+1)/2)-n*(n+1)*(2*n+1)/6;
              }

              到此結束,請不吝賜教。
              @anthor ClumsyBird

          -----------------------------
          博觀約取,厚積薄發

          主站蜘蛛池模板: 博兴县| 齐河县| 新宾| 彝良县| 金塔县| 格尔木市| 阿拉尔市| 从化市| 遂平县| 佛学| 获嘉县| 衡水市| 长兴县| 云安县| 冕宁县| 庆阳市| 西安市| 海丰县| 阳春市| 大足县| 永福县| 新郑市| 南丰县| 青州市| 东阳市| 高平市| 永平县| 鄱阳县| 保定市| 博乐市| 沅陵县| 宁津县| 芷江| 平湖市| 隆昌县| 柳林县| 城口县| 高雄县| 晋州市| 彩票| 辽源市|