乙個正整數有可能可以被表示為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億條記...