最近遇到的乙個面試題目:
依次排列有1-k號的門,門有兩種狀態:開或關,初始狀態都為關。然後乙個人手裡有k張牌,上面依次標有1-k的數字,現在這個人依次拿手中的牌上得數字去除k個門上的號碼,如果能整除,則將門的狀態改變,即由關變為開,或由開變為關,問最後門的狀態分別是什麼?
分析問題:對於每一扇門,將門號分別除以1-k中的每乙個數,如果能整除,則門的狀態變一次,其實就是求1-k中有多少個數是該門號的因數,例如,k取30,對於20號門,1-30中能整,20的數包括1,20,2,10,4,5,為6個,偶數個則門的狀態不變,對於16號門,1-30中能整除16的數包括1,16,2,8,4,為奇數個,則16號門的狀態改變。
通過列舉發現規律:凡門號為完全平方數的門在1-門號的範圍內存在能整除該數的因素一定為奇數個,因為,完全平方數一定含有乙個因數x,使得x*x=門號,則此時的因素為x,為乙個,但是對於其他的因素一定是x*y=門號的形式,x和y一定不相等,存在一對,則,這樣完全平方數的因素為奇數個。
所以,1-k號門最後的狀態是,門號為完全平方數的門的狀態為開,其他門為關。
求奇數個數子陣列的和001
給你乙個正整數陣列 arr 請你計算所有可能的奇數長度子陣列的和。子陣列 定義為原陣列中的乙個連續子串行。請你返回 arr 中 所有奇數長度子陣列的和 示例 1 輸入 arr 1,4,2,5,3 輸出 58 解釋 所有奇數長度子陣列和它們的和為 1 1 4 4 2 2 5 5 3 3 1,4,2 7...
43 求0 7所能組成的奇數個數
題目 求0 7所能組成的奇數個數 已知 組成1位數是4個。組成2位數是7 4個。組成3位數是7 8 4個。思路分析 這個問題其實是乙個排列組合的問題,設這個數為sun a1a2a3a4a5a6a7a8,a1 a8表示這個數的某位的數值,當乙個數的最後一位為奇數時,那麼這個數一定為奇數,不管前面幾位是...
c語言經典演算法 求0 7 所能組成的奇數個數
題目 求0 7 所能組成的奇數個數。演算法思想 這個問題其實是乙個排列組合的問題,設這個數為sun a1a2a3a4a5a6a7a8,a1 a8表示這個數的某位的數值,當乙個數的最後一位為奇數時,那麼這個數一定為奇數,不管前面幾位是什麼數字。如果最後一位數為偶數,則這個數一定為偶數。a1 a8可以取...