输入一个正数s,打印出所有和为s的连续正数序列(至少包含两个数),例如输入15,打印出连续3个序列1-5,4-6,7-8

来源:互联网 发布:零点网络客服电话 编辑:程序博客网 时间:2024/04/29 23:53
//输入一个正数s,打印出所有和为s的连续正数序列(至少包含两个数),例如输入15,打印出连续3个序列1-5,4-6,7-8
public static void main(String[] args) {
int s=15;
findContinueSequence(s);
}


    private static void findContinueSequence(int s) {
    Boolean flag=false;
    //因为连续正数序列至少包含两个数,所以s大于等于3
    if(s<3){
    return;
    }
    int start=1;
    int end=2;
    int mid=(1+s)/2;
    int sum=start+end;
    while(start<mid){
    if(sum==s){
    printNum(start,end);
    }while(sum>s && start<mid){
    sum-=start;
    start++;
    if(sum==s){
    printNum(start, end);
    }
    }
    end++;
    sum+=end;
   
    }
    }


private static void printNum(int start, int end) {
for (int i = start; i <= end; i++) {
System.out.print(i+" ");
}
System.out.println();
}

}
阅读全文
0 0