编写一个应用程序,找到一些相续正整数的立方和正好等于另一个整数的立方。如下图所示:

相关的程序实现如下:
package com.company;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static String s = "";
static int high = 0;
public static void main(String[] args) {
System.out.println("请输入最大值:");
io();
long sum = 0;
//sumSaver数组存放从1到数组下标的立方和
long[] sumSaver = new long[high];
//i3Saver数组存放数组下表的立方值
long[] i3Saver = new long[high];
for (long i = 1; i <= high; i++) {
i3Saver[(int) i - 1] = i * i * i;
sum = sum + i3Saver[(int) i - 1];
sumSaver[(int) i - 1] = sum;
}
//要求的最大项数组下标
for (int i = 3; i <= high; i++) {
//左边从开始到第j项的和
for (int j = 1; j < i; j++) {
//再减去左边第k项的和
for (int k = 1; k < j; k++) {
long temp = sumSaver[j - 1] - sumSaver[k - 1];
if (i3Saver[i - 1] == temp) {
System.out.printf("%d³=%d³+...+%d³\n", i, k + 1, j);
break;
}
if (i3Saver[i - 1] > temp) {
break;
}
}
}
}
}
static void io() {
try {
BufferedReader io = new BufferedReader(new InputStreamReader(System.in));
s = io.readLine();
try {
high = Integer.parseInt(s);
} catch (NumberFormatException e) {
System.out.println("请输入数字!");
Main.io();
}
} catch (IOException e) {
e.printStackTrace();
Main.io();
}
}
}