原文链接:华为OD机试统一考试D卷C卷 - 用连续自然数之和来表达整数( C++ Java JavaScript python)_用连续自然数之和来表达整数 od机试 js-CSDN博客
输入:50
8 9 10 11 12
11 12 13 14
50
输入:21
1 2 3 4 5 6
6 7 8
10 11
21
解题思路:
滑窗
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int num =sc.nextInt();
solution(num);
}
}
public static boolean solution(int num){
int left =1;
int right =1;
int sum =1;
while(left<= right && right<= num) {
if(sum< num) {
right +=1;
sum += right;
}else if(sum >= num) {
if(sum == num) {
for(int i=left; i<= right; i++) {
System.out.print(i+" ");
}
System.out.println();
}
sum -= left;
left +=1;
}
}
return true;
}