一道小題
阿新 • • 發佈:2017-05-08
tin res += tint cal 簡化 rgs ret turn (n+1)2/4.
(k+1)2/4
題目:計算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時,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[(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); } }
一道小題