static List<object> JosephusPermutation(List<object> items, int k)
{
List<object> solution = new List<object>();
int index = k - 1;
int len = items.Count;
int count = 1;
foreach(object i in items){
if(index<len){
solution.Add(items[index]);
index = k;
}
else{
index = (index - 1) - len * count;
count ;
}
}
return solution;
}
我試圖創建一個函式來獲取陣列中的每個 k 元素并獲得 OutOfRangeException 并且不知道它為什么會發生。你能解釋一下為什么這些代碼會有這樣的行為嗎?感謝你的幫助!
uj5u.com熱心網友回復:
這條線的原因是:
index = (index - 1) - len * count;
一旦count> 1,您將減去一個大于串列長度的數字,從而產生負索引。洗掉* count應該可以解決此問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/424798.html
