您的位置:首页 > 其它

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

2017-10-06 09:56 537 查看
//输入一个正数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();
}

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