我是靠谱客的博主 飘逸红牛,最近开发中收集的这篇文章主要介绍和为s的连续正数序列,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目:输入一个正数S,打印出所有和为S的连续正数序列
(至少含有两个数)。

例如,输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以打印
出3个连续序列1,2,3,4,5,4,5,6和7,8。
首先把small初始化为1,big初始化为2。如果从smal1到
big的序列的和大于S,则可以从序列中去掉较小的值,也
就是增大small的值。如果从sma1l到big的序列的和小于
S,则可以增大big,让这个序列包含更多的数字。

package helen.d;

public class Continuous {
    public static void main(String[] args) {
        int num[]={1,2,3,4,5,6,7,8,8,9,9,10};
        ContinuousSum(num,15);
    }

    private static void ContinuousSum(int[] num, int target) {
        if(num==null||num.length<2){
            return;
        }
        int start=0;
        int end=1;
        int sum=num[start]+num[end];
        while(start<end){
            if(sum==target){
                for(int i=start;i<=end;i++){
                    System.out.print(num[i]+"   ");
                }
                System.out.println();
                if(end<num.length-1){
                end++;
                sum=sum+num[end];
                }else {
                    System.out.println("失败!");
                    return;
                }
            }
            if(sum<target){
                if(end<num.length-1){
                    end++;
                    sum=sum+num[end];
                }else {
                    System.out.println("失败!");
                    return;
                }
            }
            if(sum>target) {
                sum=sum-num[start];
                start++;

            }
        }

    }

}

最后

以上就是飘逸红牛为你收集整理的和为s的连续正数序列的全部内容,希望文章能够帮你解决和为s的连续正数序列所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部