【华为OJ】【049-尼科彻斯定理】

【华为OJ】【算法总篇章】

【华为OJ】【049-尼科彻斯定理】

【工程下载】

题目描述

验证尼科彻斯定理,即:任何一个整数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;

/** * Author: 王俊超 * Date: 2015-12-25 09:04 * 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);
    }
}

你可能感兴趣的:(java,算法,华为)