大冬的面試題。
題目大意:給定乙個數n,找出幾個連續的數,這幾個數相加等於n。找出所有這樣的數。
比如給出15,有7 + 8 = 15,有4 + 5 + 6 = 15,還有1 + 2 + 3 + 4 + 5 = 15。
想了下,用最笨的辦法for出來...下面貼**。
#include #include #include #include #include using namespace std;
// n為給定數,m為n除i所得的係數,i為主調函式中的迴圈變數
vectorcul(int n, int m, int i)
if (sum != n)
return ret;
}// 列印該有效的結果
void print(vectorv)
sort(v.begin(), v.end());
for (vector::iterator it = v.begin(); it != v.end(); ++it)
cout << endl;
}// 功能開始
void func(int n)
else
return; }}
int _tmain(int argc, _tchar* argv)
連續的自然數相加
正整數中有些數字是可以由連續的自然數相加而得,比如 1 2 3 4 5 9 2 3 4 9 這裡再列出它的三個問題 1 寫乙個程式,對於任意64位正整數,輸出它所有可能的連續自然數之和的算式?2 怎麼樣的數字是不能由連續的自然數相加而得,並且證明?3 64位正整數範圍內子串行數目最多的數是哪乙個?能...
949 給定數字能組成的最大時間(簡單題)
題目描述 給定乙個由 4 位數字組成的陣列,返回可以設定的符合 24 小時制的最大時間。最小的 24 小時制時間是 00 00,而最大的是 23 59。從 00 00 午夜 開始算起,過得越久,時間越大。以長度為 5 的字串返回答案。如果不能確定有效時間,則返回空字串。示例 1 輸入 1,2,3,4...
計算和為給定數的連續正整數數列
比如 sn 100 時,總和為100 的連續正整數數列有 1100 218 19 20 21 22 39 10 11 12 13 14 15 16 對於這種演算法的設計,我們最容易想到的就是從 1 到 sn 迴圈遍歷所有的數,對於每個數再迴圈計算是否以這個數為起點總和正好是sn。這種演算法的時間複雜...