您的位置:首页 > 其它

输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序

2017-12-04 19:39 519 查看
import java.util.ArrayList;

public class Solution {

    public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum){

        ArrayList<ArrayList<Integer> > list=new ArrayList<ArrayList<Integer> >();

        if(sum < 3){

            return list;

        }

        int first=1;//设置第一个数字

        int second=2;//设置最后一个数字

        while(first < (sum+1) /2){

            ArrayList<Integer> list_sequence = new ArrayList<Integer>();

            int count=0;

            for(int i=first;i<=second;i++){

                count+=i;

            }

            if(count == sum){

              //序列满足条件

              for(int i=first;i<=second;i++){

                list_sequence.add(i);

             } 

                first++;

            }else if(count > sum){

                first++;

            }else{

                second++;

            }

            if(list_sequence.size() > 0){

                list.add(list_sequence);

            }

            

        }

        return list;

    }

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