zoukankan      html  css  js  c++  java
  • 面试题:和为S的连续正数列

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

    输出的应该是若干数字序列

    从第几个数开始判断,一共要累加几个

    代码:

    import java.util.*;
    public class Solution {
        public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
            ArrayList<ArrayList<Integer>> ans=new ArrayList<>();
            for(int n=(int)Math.sqrt(sum*2);n>=2;n--){
                //并不是所有的奇数偶数都能被执行,比如4就不能
                if((n&1)==1&&sum%n==0||(sum%n)*2==n){
                    ArrayList<Integer> list=new ArrayList<>();
                    for (int j=0,k=(sum/n)-(n-1)/2;j<n;j++,k++){
                        list.add(k);
                    }
                    ans.add(list);
                }
            }
            return ans;
        }
    }
  • 相关阅读:
    Redis
    Redis
    Redis
    linux 安装docker
    linux 安装nexus
    linux 安装jenkins
    linux 安装gitlab
    python 类的继承
    python raise & assert
    python super()
  • 原文地址:https://www.cnblogs.com/Aaron12/p/9528501.html
Copyright © 2011-2022 走看看