百度之星的一道題

2022-05-22 05:00:06 字數 907 閱讀 8029

乙個正整數有可能可以被表示為n(n>=2)個連續正整數之和,如:

15=1+2+3+4+5

15=4+5+6

15=7+8

請編寫程式,根據輸入的任何乙個正整數,找出符合這種要求的所有連續正整數序列。

輸入資料:乙個正整數,以命令列引數的形式提供給程式。

輸出資料:

在標準輸出上列印出符合題目描述的全部正整數序列,每行乙個序列,每個序列都從該序列的最小正整數開始、以從小到大的順序列印。如果結果有多個序列,按各序列的最小正整數的大小從小到大列印各序列。此外,序列不允許重複,序列內的整數用乙個空格分隔。如果沒有符合要求的序列,輸出「none」。

例如,對於15,其輸出結果是:

1 2 3 4 5

4 5 6

7 8對於16,其輸出結果是:

none

評分標準:

程式輸出結果是否正確。

#include

int main()

if (tmp1 >= 1)

vec.push_back(0);}}

else if (n % i != 0)   // 若餘數不為0

--tmp1;

// 因為要求是連續的整數之和為n,所以不為0的餘數要等於

// 商左移除數的一半後再左移一位的那個數字

if (tmp1 == tmp2)

vec.push_back(tmp2);

vec.push_back(0);}}

}}// 最後若n % 2 == 1, 則n/2 + (n/2 + 1) = n

if (n % 2 == 1)

// 輸出資料

if(vec.empty())

for(int k=0; k

else

cout<

}cout<}}

百度之星的一道題的解法

前段時間在csdn上溜達的時候發現有人發帖問一道演算法題的解法,看到之後感覺很有意思。題目如下 題目描述 乙個正整數有可能可以被表示為 n n 2 個連續正整數之和,如 15 1 2 3 4 5 15 4 5 6 15 7 8 請編寫程式,根據輸入的任何乙個正整數,找出符合這種要求的所有連續正整數序...

百度之星的一道題的解法

前段時間在csdn上溜達的時候發現有人發帖問一道演算法題的解法,看到之後感覺很有意思。題目如下 題目描述 乙個正整數有可能可以被表示為 n n 2 個連續正整數之和,如 15 1 2 3 4 5 15 4 5 6 15 7 8 請編寫程式,根據輸入的任何乙個正整數,找出符合這種要求的所有連續正整數序...

一道百度架構題

無論筆試還是面試總會被問到一些架構題,關鍵還無法理解面試官究竟在問什麼。開始積累這些題吧,放到下面 關於海量資料儲存與訪問,涉及到分庫,分表,可以參考此文 1 有乙個監控系統,有大量的資料記錄包括 url,使用者訪問ip,時間 要對這個監控系統進行維護,並提供查詢。設計乙個能儲存和維護1000億條記...