java for循环一个正整数有可能可以被表示为 n ( n >=2)个连续正整数之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
时间: 2023-05-12 10:05:31 浏览: 95
以下是一个 Java 程序,可以找出符合要求的所有连续正整数序列:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
List<List<Integer>> result = findContinuousSequence(n);
for (List<Integer> list : result) {
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
if (i != list.size() - 1) {
System.out.print(" ");
}
}
System.out.println();
}
}
public static List<List<Integer>> findContinuousSequence(int target) {
List<List<Integer>> result = new ArrayList<>();
int i = 1, j = 1, sum = 0;
while (i <= target / 2) {
if (sum < target) {
sum += j;
j++;
} else if (sum > target) {
sum -= i;
i++;
} else {
List<Integer> list = new ArrayList<>();
for (int k = i; k < j; k++) {
list.add(k);
}
result.add(list);
sum -= i;
i++;
}
}
return result;
}
}
```
输入一个正整数,程序会输出所有符合要求的连续正整数序列。例如,输入 15,程序会输出:
```
1 2 3 4 5
4 5 6
7 8
```
阅读全文