您的位置:首页 > 其它

求和为s的连续正整数序列

2016-10-06 14:34 225 查看

题目:

输入一个正整数s,打印出所有和为s的连续正整数序列(至少包含两个数字)

样例输入:

21

样例输出:

1 2 3 4 5 6

6 7 8

10 11

Code:

public class list {

public void printList(int a, int b) {
for (int i = a; i <= b; i++) {
System.out.print(i + " ");
}
System.out.println();
}
public void sumList(int s) {
int start = 1;
int end = 2;
int half = (s + 1) / 2;
int sum = start + end;
while (start < half) {
if (sum == s) {
sum = sum - start;
printList(start, end);
start++;
end++;
sum = sum + end;
} else if (sum < s) {
end++;
sum+=end;
} else {
sum-=start;
start++;
}
}
}

@Test
public void testList() {
sumList(21);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: