输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
2017-12-04 19:39
531 查看
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;
}
}
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;
}
}
相关文章推荐
- 30.输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
- 输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
- 今天开始学Java 输入一个正整数,按照从小到大的顺序输出它的所有质数的因子
- 输入一个正数n,输出所有和为n连续正数序列。
- C++输出所有和为S的连续正数序列(牛客剑指offer)
- 输入一个正数 n,输出所有和为 n 的连续正数序列 [No. 25]
- 输入一个正数n,输出所有和为n连续正数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。
- 输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
- 输入一个正数n,输出所有和为n连续正数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。
- 输出所有和为n连续正数序列
- 【每日面试题】输入一个正数n,输出所有和为n连续正数序列
- 剑指Offer面试题41和为s的两个数字与和为s的连续正数序列,面试题42翻转单词顺序与左旋转字符串
- Problem Description 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 Input 输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义
- 输入一个正数 n,输出所有和为n 连续正数序列。
- 输出所有和为S的连续正数序列
- 【算法学习-01】 输入一个正数 n,输出所有和为 n 连续正数序列。
- 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列(可以有前导0),2<=n<=79
- 输入一个正数n,输出所有和为n连续正整数序列
- 《剑指offer》- 输出所有和为S的连续正数序列
- 输入一个正数n,输出所有和为n连续正数序列。