尼科徹斯定理

題目描述

驗證尼科徹斯定理,即:任何一個整數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);
    }
}
相關文章
相關標籤/搜索