和為n連續正數序列

2021-06-22 23:34:48 字數 804 閱讀 7631

題目:輸入乙個正數n,輸出所有和為n連續正數序列。 

例如輸入15,由於1+2+3+4+5=4+5+6=7+8=15,所以輸出3 個連續序列1-5、4-6 和7-8。

思路:既然是連續正整數,則可以將其看成是等差數列,公差d=1;

* 等差數列前n項求和公式為sn=na1+n(n-1)d/2,其中sn為使用者輸入的

* 正數,a1為數列起始位置,n為數列長度。將公式變換,n²+(2a1-1)n-2sn=0;

* 求n,又由公式n=2a分之負b加減根號下b方減4ac,得出根號內為sqt=(2a1-1)²+8sn;

* 則n=(1-2a1+sqt)/2;

* 本題可令a1從1開始遍歷到sn/2結束,期間若n為正整數,則輸出a1...a1+n;

**如下:

public class findconsecutivesequence 

private static void getconseq(int sum)

system.out.println("-----------");

}} }

}

執行結果:

seq: 1

seq: 2

seq: 3

seq: 4

seq: 5

-----------

seq: 4

seq: 5

seq: 6

-----------

seq: 7

seq: 8

-----------

和為n連續正數序列

51.和為n連續正數序列。題目 輸入乙個正數n,輸出所有和為n連續正數序列。例如輸入15,由於1 2 3 4 5 4 5 6 7 8 15,所以輸出3個連續序列1 5 4 6和7 8。分析 這是網易的一道面試題。這個題目出自微軟等資料結構 演算法面試100題 在devc 中編譯通過 name aut...

和為 n 連續正數序列

題目 輸入乙個正數 n,輸出所有和為 n 連續正數序列。例如輸入 15,由於 1 2 3 4 5 4 5 6 7 8 15,所以輸出 3 個連續序列 1 5 4 6 和 7 8。思路 我們再找連續的序列,那麼我們從最小的一直往前加,如果和結果相等,那麼這是乙個符合條件的序列,然後再連續的往後加,如果...

和為n連續正數序列

題目 輸入乙個正數n,輸出所有和為n的連續正數序列 舉例 輸入15,由於1 2 3 4 5 4 5 6 7 8 15,所以輸出3個連續序列1,2,3,4,5 4,5,6 7,8。答 include stdafx.h include using namespace std 求和為n的連續正數序列 vo...