首页 > 代码库 > 一道小题

一道小题

题目:计算13+23+33+……+(n-1)3+n3.

这个式子一般的解法,应当是用循环的方式:先算13,再算23,相加,再算33,相加……算出结果。

 1 import java.util.Scanner;
 2 
 3 public class CalculateCube {
 4     public static long cube(int number) {
 5         int retnum = 0;
 6         for(int num =1; num<=number;num++) {
 7             retnum += num*num*num;
 8         }
 9         return retnum;
10     }
11     public static void main(String[] args) {
12         Scanner input = new Scanner(System.in);
13         int number = input.nextInt();
14         long result = cube(number);
15         System.out.println("所求结果为" +result);
16      }
17 }

不过这个计算方法虽然电脑可以执行,但人不行。而利用数学归纳法可以将上式简化为:(1+2+3+……+n)^2 或 n2(n+1)2/4.

     当n=1时,12(1+1)2/4=1=13.

     假设n=k时成立,要证n=(k+1)时也成立,则当n=(k+1)时:

          13+23+33+……+k3+(k+1)3=[k2(k+1)2/4]+(k+1)3

                                                 =[k2(k+1)2/4]+[4(k+1)(k+1)2/4]

                                                 =(k2+4(k+1))(k+1)2/4

                                                 =(k+2)2(k+1)2/4

                                                 =(k+1)2[(k+1)+1]2/4.

    所以13+23+33+……+(n-1)3+n3=n2(n+1)2/4.

import java.util.Scanner;

public class CalculateCube {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        int num1 = num+1;
        long result = (num*num*num1*num1) / 4;
        System.out.println("所求结果为" +result);
    }
}

 

一道小题