华为OJ|【华为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); } }

    推荐阅读