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;
        }
    }
  • 相关阅读:
    HDU 5710 digit sum
    Fibonacci Tree HDU
    2016CCPC东北赛补题
    紫书水题
    20180415校赛
    随心所欲小游戏
    Alpha版本测试报告
    第四天作业
    第二天作业
    第一天作业
  • 原文地址:https://www.cnblogs.com/Aaron12/p/9528501.html
Copyright © 2011-2022 走看看