關於約瑟夫環的一些漏洞

2022-06-03 23:18:11 字數 880 閱讀 3552

#include using

namespace

std;

typedef

struct

data;

typedef

struct

lnode

lnode,*linklist;

intmain()

}intm;

cout

<<"

請輸入設定的上限數:";

cin>>m;

linklist p;

//驗證是否可以迴圈輸出,即迴圈鍊錶是否建立成功

p=new

lnode;

p=l->next; //

將p設為首結點

for(int i=1;i<=m;i++) //

利用輸出判定迴圈鍊錶的建立

cout

next; //

迴圈完成後把p的位置還原

int t=0;//

t代表執行的次數

for(int i=1;i<=m;i++)//

利用給出的上限數開始迴圈 依次輸出密碼的位置

if(i==m-1

)

}p=p->next;

if(t==n-1) //

判斷是否只剩下乙個結點,若剩下乙個則結束迴圈

}cout

輸出最後乙個結點的位置

return0;

}

以上是修正過後的**

1.對於輸出驗證迴圈列表成立後沒有把p指標重新指向首元節點

2.沒有判斷輸入的上限數的值是否太小,可能導致迴圈無法進行。

3.在判斷上限數以及密碼太小時沒有把  i 的值歸零,是迴圈重新開始。

基本約瑟夫環的一些理解

約瑟夫環 josephus cycle 編號為1,2,3,n的n個人按順時針方向圍坐一圈。任選乙個正整數作為報數上限m,從第乙個人開始按順時針方向自1開始順序報數,報到m時停止報數,報m的人出列。從他在順時針方向上的下乙個人開始重新從1報數,如此下去,直到最後圈中只剩下最後乙個人 勝利者 請設計程式...

關於CSRF漏洞的一些介紹

tit1e xw隱私 不看後悔一輩子 title tip width 200px margin 20px auto font size 20px 1 style head div class tip 載入中,請稍候,div 可能有些小錯誤,但作為新手的我還請大家多多包涵哈。這便是攻擊者構造的攻擊 其...

關於約瑟夫環的思考(一) c

題目 約瑟夫環 每隔兩個迴圈刪除陣列元素,求最後刪除者的下標問題 有乙個陣列a 1000 存放0 1000 要求每隔二個數刪掉乙個數,到末尾時迴圈至開頭繼續進行,求最後乙個被刪掉的數的原始下標位置 原來的數可能是無序的,另外數是否重複從題意無法確定 以8個數為例 0 1 2 刪除 3 4 5 刪除 ...