題目描述
驗證尼科徹斯定理,即:任何一個整數m的立方均可以寫成m個連續奇數之和。
例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
接口說明
原型:
/*
* 功能: 驗證尼科徹斯定理,即:任何一個整數m的立方均可以寫成m個連續奇數之和。
* 原型:
* int getSequeOddNum(int m);
* 輸入參數:
* int m:整數(取值範圍:1~100)
*
* 返回值:
* m個連續奇數(格式:「7+9+11」);
*/
public String GetSequeOddNum(int m) {
/*在這裏實現功能*/
return null;
}
輸入描述
輸入一個int整數
輸出描述
輸出分解後的string
輸入例子
6
輸出例子
31+33+35+37+39+41
算法實現
import java.util.Scanner;
/**
* Declaration: All Rights Reserved !!!
*/
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt"));
while (scanner.hasNext()) {
int n = scanner.nextInt();
System.out.println(getSequeOddNum(n));
}
scanner.close();
}
/**
* n個連續奇數之和
* 簡單說明:
* 若是n是奇數,則從n^2-(n-1),n^2-(n-3)...n^2-(2),n^2-(0),n^2+(2)...n^2+(n-3),n^2+(n-1) 一共有n個數,和爲n^3
* 若是n是偶數,則從n^2-(n-1),n^2-(n-3)...n^2-(1),n^2+(1)...n^2+(n-3),n^2+(n-1) 一共有n個數,和爲n^3
*
* @param n
* @return
*/
private static String getSequeOddNum(int n) {
int lo = n * n - (n - 1);
int hi = n * n + (n - 1);
StringBuilder builder = new StringBuilder();
for (int i = lo; i <= hi; i += 2) {
builder.append(i).append('+');
}
return builder.substring(0, builder.length() - 1);
}
}