1*1+2*2+...n*n和1*1*1+2*2*2+...+n*n*n和公式推導
首先推導1*1+2*2+...n*n=(n*(2n+1)*(n+1))/6;
易知道(n+1)*(n+1)*(n+1)=n*n*n+3*n*n+3*n+1
(n+1)*(n+1)*(n+1)-n*n*n=3*n*n+3*n+1
n * n * n - (n - 1)*(n -1)*(n-1)=3*(n-1)*( n-1 )+3*( n-2 )+1
........
........
.........
2*2*2-1*1*1=3*1*1+3*1+1
兩邊想加得:
(n+1)*(n+1)*( n+1 )-1*1*1=3( 1*1+2*2+3*3+...+n*n)+3(1+2+3+....+n)+n
設( 1*1+2*2+3*3+...+n*n)為M化簡得:
6M=2*n*n*n+3*n*n+n
得:
M=(n*(2n+1)*(n+1))/6
現在再推導1*1*1+2*2*2+...+n*n*n=( ( n*(n+1) )/2)*( ( n*(n+1) )/2)
這個用圖推導更好理解,不過我畫圖太醜了,就用公式瞎推導下
n的3次方 sum
1*1*1=1 1 ((1*2)/2)=1
2*2*2=8 9 ( (2*3)/2)=3
3*3*3=27 36 ( (3*4) /2)=6
4*4*4=64 100 ( (4*5)/2)=10
......
n*n*n = ( ( n*(n+1) )/2)*( ( n*(n+1) )/2)
相關推薦
python練習題,寫一個方法 傳進去列表和預期的value 求出所有變量得取值可能性(例如list為[1,2,3,4,5,6,12,19],value為20,結果是19+1==20只有一種可能性),要求時間復雜度為O(n)
num bubuko com pri def 代碼 data- 取值 .com 題目:(來自光榮之路老師)a+b==valuea+b+c=valuea+b+c+d==valuea+b+c+d+...=valuea和b....取值範圍都在0-value寫一個方法 傳進去列
給定陣列a[0:n-1]試設計一個演算法,在最壞情況下用[3n/2 -2 ] 次比較找出a[0:n-1]中元素的最大值和最小值;教材2-15
給定陣列a[0:n-1]試設計一個演算法,在最壞情況下用[3n/2 -2 ] 次比較找出a[0:n-1]中元素的最大值和最小值; 解:要求對於陣列用小於【3n/2-2】的比較次數找到兩個最值 可以用陣列第一個元素來初始化max,min 然後遍歷陣列,分別和max,min比較,一遍就可以找
把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。
/* 思路: 通俗易懂的解釋: 首先從醜數的定義我們知道,一個醜數的因子只有2,3,5,那麼醜數p = 2 ^ x * 3 ^ y * 5 ^ z,換句話說一個醜數一定由另一個醜數乘以2或者乘以3或者乘以5得到,那麼我們從1開始乘以2,3,5,就得到2,3,5三個醜數,在從這
java實現求調和數列的和,即:1/1 + 1/2 + ... + 1/n
package demo04; import java.util.Scanner; public class Test08 {public static void main(String[] args) {Scanner in = new Scanner(System.in
.把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。
題目: 把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 解題思路:選定第一個醜數1,根據醜數的定義,可知以後的醜數必然是在1的基礎上乘以2,乘以3,乘以5,
求自然數的前n項和,如1+2!+3!+...+n!
#include <stdio.h> int main() {int i, j, n;float sum = 0,tmp;printf("Please input a number:");while(1){if(scanf("%d",&n) != 1 |
1*1+2*2+...n*n和1*1*1+2*2*2+...+n*n*n和公式推導
首先推導1*1+2*2+...n*n=(n*(2n+1)*(n+1))/6; 易知道(n+1)*(n+1)*(n+1)=n*n*n+3*n*n+3*n+1 (n+1)*(n+1)*(n+1)-n*n*n=3*n*n+3*n+1 n * n * n - (n - 1)*
劍指offer:把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。
問題:把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 通俗易懂的
輸入一個數據n,計算斐波那契數列(Fibonacci)的第n個值 1 1 2 3 5 8 13 21 34 規律:一個數等於前兩個數之和。
import java.util.Scanner; /** * 輸入一個數據n,計算斐波那契數列(Fibonacci)的第n個值 1 1 2 3 5 8 13 21 34 規律:一個數等於前兩個數之和 * 計算斐波那契數列(Fibonacci)的第n個值. */ public cla
演算法題:對只含有0,1,2三個元素的陣列排序,時間複雜度O(n)
題目: 將元素均為0、1、2的陣列排序,時間複雜度O(n)。 思路: 方法1:通過三個下標遍歷一遍實現的方法。 p1從左側開始,指向第一個非1的數字;p3從右側開始,指向第一個非3的數字。 p2從p1開始遍歷,如果是2,p2繼續遍歷,直到p2遇到1或者3 如果遇到
已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直至殺掉所有人,當剩下
public class Game { public int fun(int N,int k,int m) { int[] array=new int[N]; //建立N個人 int n=N; //剩餘人數 for(int
python遞歸練習:生成一個n級深度的字典,例如:[1,2,3,4,5,6] 可以生成{1: {2: {3: {4: {6: 5}}}}},寫一個函數定義n級
生成 結果 dict 深度 遞歸 ict nco strong ron 結果#encoding = utf-8#題目:#生成一個n級深度的字典,例如:[1,2,3,4,5,6] 可以生成{1: {2: {3: {4: {6: 5}}}}},寫一個函數定義n級a=[1,2,3
python遞迴練習:生成一個n級深度的字典,例如:[1,2,3,4,5,6] 可以生成{1: {2: {3: {4: {6: 5}}}}},寫一個函式定義n級
結果#encoding = utf-8#題目:#生成一個n級深度的字典,例如:[1,2,3,4,5,6] 可以生成{1: {2: {3: {4: {6: 5}}}}},寫一個函式定義n級a=[1,2,3,4,5,6] def fun(n,i=0,dict1={}): if i ==n-1: dict1[a[
創新工場筆試題----有1分,2分,5分,10分四種硬幣,每種硬幣數量無限,給定n分錢,求有多少種組合可以組合成n分錢?
【題目】有1分,2分,5分,10分四種硬幣,每種硬幣數量無限,給定n分錢,求有多少種組合可以組合成n分錢? 程式碼如下 void Combination(int *a,int index,int n,vector<int>& vec) { if (n=
(hdu step 3.1.2)骨牌鋪方格(簡單遞推:求用2*1的骨牌鋪滿2*n的網格的方案數)
在寫題解之前給自己打一下廣告哈~。。抱歉了,希望大家多多支援我在CSDN的視訊課程,地址如下:http://edu.csdn.net/course/detail/209題目:骨牌鋪方格Time Limi
輸入一個數據n,計算斐波那契數列(Fibonacci)的第n個值 1 1 2 3 5 8 13 21 34 規律:一個數等於前兩個數之和。
import java.util.Scanner; /** * 輸入一個數據n,計算斐波那契數列(Fibonacci)的第n個值 1 1 2 3 5 8 13 21 34 規律:一個數等於前兩個數之和 * 計算斐波那契數列(Fibonacci)的第n個值.
迴圈連結串列報數問題,n個人編號分別為1,2,3,……n,從第k個編號開始數1,2到m個然後刪除第m個人,然後下 一個人再從1開始數數到第m個,然後再刪除m人
#include<iostream> #include<stdio.h> using namespace std; //迴圈連結串列報數問題,n個人編號分別為1,2,3,……n,從第k個編號開始數1,2到m個然後刪除第m個人,然後下 //一個人再從1
求1到任意整數的階乘之和 例如(1!+2!+3!+~~~+n!)
using System;using System.Collections.Generic;using System.Text; namespace Text{ class Program { static void Main(string[] a
有1,2,....一直到n的無序陣列,求排序演算法,要求時間複雜度為O(n),空間複雜度O(1)
http://blog.csdn.net/dazhong159/article/details/7921527 1、有1,2,....一直到n的無序陣列,求排序演算法,並且要求時間複雜度為O(n),空間複雜度O(1),使用交換,而且一次只能交換兩個數。 #include &
C語言:求n的階乘/求1!+2!+.....+n!
首先求n的階乘,我們先要產生1-n的數字,然後累乘起來,利用for迴圈來實現。 所以求n的階乘的具體程式碼如下:#include <stdio.h> #include <stdlib.h> int main() { int