1. 程式人生 > >牛客(41)和為S的連續正數序列

牛客(41)和為S的連續正數序列

enc div 正數 for color 快的 AD art UC

//    題目描述
//    小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。
//    但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100(至少包括兩個數)。
//    沒多久,他就得到另一組連續正數和為100的序列:18,19,20,21,22。現在把問題交給你,
//    你能不能也很快的找出所有和為S的連續正數序列? Good Luck!
//    輸出描述:
//    輸出所有和為S的連續正數序列。序列內按照從小至大的順序,序列間按照開始數字從小到大的順序

    public static ArrayList<ArrayList<Integer>> FindContinuousSequence(int
sum) { ArrayList<ArrayList<Integer>> arrayLists = new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> arrayList = new ArrayList<Integer>(); int now = 0; for (int start = 1; start < sum / 2+1; start++) { now = start; arrayList.clear(); arrayList.add(start);
for (int j = start+1; j <= sum / 2 +1; j++) { now += j; arrayList.add(j); if (now == sum) { if (arrayList.size()>=2){ arrayLists.add(new ArrayList<Integer>(arrayList)); break
; } }else if (now>sum){ break; } } } return arrayLists; }

牛客(41)和為S的連續正數序列