public final class Demo {
1个回答

package test;

import java.util.ArrayList;

import java.util.List;

public class Nikechesi {

x05public static void main(String[] args) {

x05x05System.out.println(GetSequeOddNum(3));

x05}

x05public static String GetSequeOddNum(int m) {

x05x05int sum = m * m * m;

x05x05List

list = new ArrayList

();

x05x05for (int i = 1;; i += 2) {

x05x05x05sum = m*m*m;

x05x05x05list = new ArrayList

();

x05x05x05for (int j = i;; j += 2) {

x05x05x05x05sum -= j;

x05x05x05x05list.add(j);

x05x05x05x05if (sum <= 0) {

x05x05x05x05x05break;

x05x05x05x05}

x05x05x05}

x05x05x05if (sum == 0) {

x05x05x05x05break;

x05x05x05} else {

x05x05x05x05continue;

x05x05x05}

x05x05}

x05x05String s = "";

x05x05for(Integer i:list){

x05x05x05s += "+" + i ;

x05x05}

x05x05

x05x05return s.substring(1);

x05}

}

你给定了m的取值范围,所以这段代码中没有考虑负数和0,不过也不难.0的话直接返回-1+1,负数的话先去掉符号-,计算完毕后在在list的元素中加上