一道挺好玩的题,可用来作面试题【来自20111224 Topcoder DIVI 250题】
一道挺好玩的題,可用來作面試題【來自20111224 Topcoder DIVI 250題】
有N個數,編號1到n。按照以下規則進行刪除數,求最后剩下的那個數。【1<= n <= 1000000000】
規則:
1 . 如果當前序列的個數大于1,則刪除所有序列中第平方數的位置的數。
2. 將進行1操作剩下的數,重新排在一起,重復操作1,直接當前序列數為1個數時,這個數就是結果。
?
例子: 如果現在是10個數
? ? ?1 2 3 4 5 6 7 8 ?9 10 第一次刪除 1 、4、9?
=>2 3 5 6 7 8 10 ? ? ? ? ?第二次刪除 ?2、6兩個數,因為他們的位置是第1、4個數。
=>3 5 7 8 10 ? ? ? ? ? ? ? ?第三次刪除 ?3、8兩個數,原因同上。
=>5 7 10 ? ? ? ? ? ? ? ? ? ? ?第四次刪除 5 這個數。
=>7 10
=> 10
這樣最后的數就是10,就是要求的結果。
再給幾個例子:
n = 6時,結果是 5.
n = 8 時,結果 是 7?
n = 9 時,結果是 7
n = 20111223時,結果是 20110741
?
我覺得這個題有點意思,可以思考思考~?
稍后會給出一個較好的參考答案思路。
【轉載請注出處】
?
轉載于:https://www.cnblogs.com/BrainDeveloper/archive/2011/12/24/2300279.html
總結
以上是生活随笔為你收集整理的一道挺好玩的题,可用来作面试题【来自20111224 Topcoder DIVI 250题】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php计算获取抖音签名
- 下一篇: 软件工程用例图要素简单解释