题目描述:
验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
输入
输入一个int整数
输出
输出分解后的string
样例输入
6
样例输出
31+33+35+37+39+41
思路:
由例子1~4给出的结论猜测 n = (n*(n-1)+1) + (n*(n-1)+2 +1) + ... + (n*(n+1)-2 + 1 )(共n项,等差数列,差为2)
而又等差数列的性质知:
(n*(n-1)+1) + (n*(n-1)+2 +1) + ... + (n*(n+1)-2 + 1 )
= ((n*(n-1)+1) + (n*(n+1)-2 + 1 ))* n/2
= (n- n + 1 + n + n -1)*n/2
=n
所以可以直接给出答案
import java.util.Scanner;
/**
* 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
输入
输入一个int整数
输出
输出分解后的string
样例输入
6
样例输出
31+33+35+37+39+41
*
*/
public class Nicosiche { public static void main(String[] args) {
Scanner cin = new Scanner(System.in) ;
int n = cin.nextInt() ;
cin.close();
String res = "" ;
//输出结果
for (int j = n * (n - 1) / 2; j < n * (n + 1) / 2; j++) {
if(j != n * (n + 1) / 2 -1){
res += (j*2+1) + "+" ;
}else{
res += (j*2+1) ;
}
}
System.out.println(res); }
}