和為n連續正數序列

2021-09-06 05:52:20 字數 720 閱讀 9954

題目:輸入乙個正數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的連續正數序列

void findsequencenumber(int

n)

int first = 1

;

int last = 2

;

int end = (n + 1) / 2

;

int sum = 1

;

while (first <= end) //

序列必定有兩個及以上

cout

<

sum -=first;

first++;

}else

if (sum

else

if (sum >n)

}}int _tmain(int argc, _tchar*argv)

執行介面如下:

和為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。思路 既然是連續正整數,則可以將其看成是等差數列,公差d 1 等差數列前n項求和公式為sn na1 n n 1 d 2,其中sn為使用者輸...

和為 n 連續正數序列

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