約瑟夫問題 非常規解法,用陣列模擬報數的過程

2021-08-31 04:31:46 字數 511 閱讀 2479

/*

* n個人圍成一圈,1,2,3迴圈報數,報到3的人退出.到最後只餘1人,輸出最後留下的是第幾號

*/#include#include/*

* 用陣列去模擬報數的過程

* n:陣列中的元素個數

* given:報到幾

*/int remain(int *a,int n,int given)

else

}//沒有報過數

else

//到達陣列末尾

if(i==n-1)

else }}

for(int j=0;jreturn j+1;

}int main()

; int n=sizeof(a)/sizeof(a[0]);

int given=3;

int result=remain(a,n,given);

printf("最後留下的是第%d號\n",result);

return 0;

}

1687 陣列操作(非常規思維)

1687 陣列操作 time limit 1 sec memory limit 128 mb submit status web board description 給你乙個初始的長度為n的陣列。1 n 105 有兩個操作 op1 l,r 給兩個整數l和r 1 l r 當前陣列長度 你需要計算陣列從...

約瑟夫環的陣列解法(非常簡單)

關於約瑟夫環的陣列解法。通過分析實現 如下 include stdio.h 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為1的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。int main for...

用陣列模擬實現約瑟夫環

約瑟夫問題 n個人圍成一圈,從第乙個人開始報數,數到m的人出圈 再由下乙個人開始報數,數到m的人出圈 輸出依次出圈的人的編號。n,m由鍵盤輸入。要求 用陣列模擬實現 include include using namespace std const int maxn 10000 7 const in...