一道小题
Posted 望山海
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一道小题相关的知识,希望对你有一定的参考价值。
题目:计算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); } }
以上是关于一道小题的主要内容,如果未能解决你的问题,请参考以下文章