一、题目
验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
输入一个int整数,输出分解后的string
二、思路
观察得到规律,尼科彻斯定理主要在于构造一个以(a * a - a + 1)为首项,以2为差的等差数列。
三、代码
import java.util.Scanner;
/**
* 尼科彻斯定理:
* 在于构造一个以(a * a - a + 1)为首项,以2为差的等差数列
* 等差数列公式:n*a1 + n*(n - 1)*d/2
*/
public class Solution {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) {
int m = scanner.nextInt();
String res = GetSequeOddNum(m);
System.out.println(res);
}
}
private static String GetSequeOddNum(int m) {
int first = m * m - m + 1;
String result = first + "+";
for (int i = 1; i < m; i++) {
first = first + 2;
result += String.valueOf(first);
if (i != m - 1) {
result += "+";
}
}
return result;
}
}