首页 > 代码库 > 一道小题
一道小题
题目:计算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); } }
一道小题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。