华为OJ平台——尼科彻斯定理

题目描述:

  验证尼科彻斯定理,即:任何一个整数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给出的结论猜测  n3 = (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  +  n2 + n -1)*n/2

=n3   成立

所以可以直接给出答案

 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); }
}

              

上一篇:Hadoop 集群搭建


下一篇:剑指offer(4)重建二叉树