java

一个整数分为若干个连续整数之和(使用java实现)

2018-09-09  本文已影响1人  倾尽一生浅笑繁花落尽

题目描述:

要求写出所有连续的正整数序列,使其之和等于90,小明灵光一闪,立马写上了29,30,31,

他看到解释说明台式告知答案不止一种,过了好一会,他总算算出了所有的5种答案

给你一个正整数Num,请输出所有连续的递增(+1)的正整数序列,使其之和等于Num,如不存在则输出NULL

例如输入:90

输出:[2,3,4,5,6,7,8,9,10,11,12,13]

 [6,7,8,9,10,11,12,13,14]

 [16,17,18,19,20]

 [21,22,23,24]

 [29,30,31]

java代码:

import java.util.ArrayList;

import java.util.List;

public class Demo5 {

public static void main(String[] args) {

int number =90;

Demo5 demo =new Demo5();

demo.printNum(number);

}

public void printNum(int num) {

int sum =0;

for (int i =0; i < num /2; i++) {

for (int k =1; ; k++) {

sum = (k +1) * (2 * i + k) /2;

if (sum > num)

break;

if (sum == num) {

List list =new ArrayList();

for (int j =0; j <= k; j++) {

list.add(i + j);

}

System.out.println(list);

}

}

}

}

}

上一篇下一篇

猜你喜欢

热点阅读