本文主要是介绍一些相续正整数的立方和正好等于另一个整数的立方,java代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如图
解决类似的问题的java代码,没有进行过代码优化,可以使用python的特性进行简单验证,比如:6**3==(3**3+4**3+5**3),该表达式可以直接输出验证结果,文中的代码因为使用Integer类型作为计算变量,我测试了一下,大概只能进行5000以内的计算,如果想要进行更大数的计算,则需要对代码中的计算变量类型进行替换,可以考虑BigInteger或者BigDecimal类型
package com.exam.swing.module;import java.util.Scanner;public class MathProof {public static void main(String[] args) {long millis = System.currentTimeMillis();//验证等式: 一些相续正整数的立方和正好等于另一个整数的立方。{Scanner scanner = new Scanner(System.in);System.out.println("请输入一个整数上限:");int num = scanner.nextInt();//计算该整数内所有数的立方和并存储在一个数组中Integer arrResult[] = new Integer[num];for (int i = 1; i <= num; i++) {arrResult[i - 1] = i * i * i;}Integer result = 0;//获得连续的数的立方和String str = "";//以字符串形式统计所用的数,形成一个表达式for (int i = 1; i <= num; i++) {//最外层循环次数for (int j = 1; j < num; j++) {//作为开始求和的最小值//清空上次计算的结果result = 0;if (str.length() != 0) {str = "";}for (int k = j; k < num; k++) {//最内层计算该数的组成result += k * k * k;str = str + "" + k + "^3" + "+";if (result.equals(arrResult[i - 1])) {int temp = k * k * k;//再次判断是否是本身的立方,如果是本身的立方,则跳过if (temp == arrResult[i - 1]) {break;}//直接输出计算的结果System.out.println("值" + arrResult[i - 1] + "," + i + "^3=" + str.substring(0, str.length() - 1));break;} else if (result > arrResult[i - 1]) {//计算的结果大于要求,跳出循环break;}}}}long millis1 = System.currentTimeMillis();System.out.println("计算所用时间:" + (millis1 - millis)+"毫秒");}}
}
这篇关于一些相续正整数的立方和正好等于另一个整数的立方,java代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!