1. 程式人生 > >一道小題

一道小題

tin res += tint cal 簡化 rgs ret turn

題目:計算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);
    }
}

一道小題