• 和为S的连续正数序列


    题目描述

    小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!

    输出描述:

    输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
     1 import java.util.ArrayList;
     2 
     3 /**
     4  * 
     5  * @author gentleKay
     6  * 题目描述
     7  * 小明很喜欢数学,有一天他在做数学作业时,
     8  * 要求计算出9~16的和,他马上就写出了正确答案是100。
     9  * 但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。
    10  * 没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。
    11  * 现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!
    12  * 输出描述:
    13  * 输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
    14  */
    15 
    16 public class Main40 {
    17 
    18     public static void main(String[] args) {
    19         // TODO Auto-generated method stub
    20         System.out.println(Main40.FindContinuousSequence(10));
    21         
    22     }
    23     
    24     public static ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
    25         ArrayList<ArrayList<Integer>> list = new ArrayList<>();
    26         for (int i=1;i<sum;i++) {
    27             int num = 0;
    28             ArrayList<Integer> array = new ArrayList<>();
    29             for (int j=i;j<sum;j++) {
    30                 num = num + j;
    31                 array.add(j);
    32                 if (num == sum) {
    33                     list.add(array);
    34                     break;
    35                 }
    36                 if(num > sum) {
    37                     break;
    38                 }
    39             }
    40         }
    41         return list;
    42     }
    43 
    44 }
  • 相关阅读:
    Web.xml中Filter过滤器标签几个说明
    JVM参数配置大全
    Java时间日期格式转换
    第一天用博客园
    Java基础--序列化和反序列化
    Java面试题2017
    固定布局,流动布局,弹性布局
    viewport
    索引
    Java虚拟机
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11177341.html
Copyright © 2020-2023  润新知