壹圈有n個人,按順序編號。從第壹個人開始報數(從1到3)。誰報3就退圈,問最後壹個走的是原號。
輸入輸入壹個整數n (2
輸出輸出剩余人數。
樣本輸入4樣本輸出1
分析:
1)當有人外出時,可以用來給原號碼賦壹個新值。所以第二輪,1和2變成n+1,n+2,3出局,所以4和5分別變成n+4-1=n+3和n+5-1=n+4,6出局。。。,以此類推;
3k+1和3k+2分別變成n+3k+1-k=n+2k+1和n+3k+2-k=n+2k+2。
2)在上述編號方式下,第k個出的人的編號壹定是3k,所以最後壹個出的人的最終編號是3n。
求解:
3)如果數量是N & gtn,那麽有n這個數字的人之前壹定有另壹個數字。(因為原數是1...n)我們怎麽找到n這個數對應的前壹個數?因為N=n+2k+1或者N=n+2k+2,k=(N-n-1)/2。前面的數分別是3k+1和3k+2,(N=n+2k+1或N=n+2k+2給出1=N-n-2k,2=N-n-2k)的意思是3k+(N-N-2k)= 1