牛客(41)和為S的連續正數序列
阿新 • • 發佈:2018-05-18
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(intsum) { 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的連續正數序列