陣列版本
#include#include main()
int *p=(int*)malloc(len*sizeof(int));
printf("請輸入步長:\n");
scanf("%d",&pace);
if(pace==0)
//if(pace==0)
printf("請輸入進行輪數:\n");
scanf("%d",&time);
printf("請輸入您想從那個元素開始:\n");
scanf("%d",&start);
if(start==0)
for(int i=0;i(len-time))//從規定元素起點開始
}index++;
if(index == len) // 當到陣列尾,陣列下標index置零,重新開始
}for(int j=0;j單向迴圈鍊錶版本
# include # include typedef struct circle_listnode,*pnode;//定義節點
pnode creat_list(int len);//建立迴圈鍊錶
void visit_list(pnode mark,int len,int time);//遍歷尋歡鍊錶
pnode kill_list(pnode head,int pace,int time,int len,int mark);//刪除迴圈鍊錶的乙個給定下表的元素
main()
head=creat_list(len);//建立鍊錶
printf("請輸入您想從第幾個人開始:\n");
scanf("%d",&index);
printf("請輸入步長(每經過幾個人殺乙個人:)\n");
scanf("%d",&pace);
printf("請輸入進行的第幾輪:\n");
scanf("%d",&time);
mark=kill_list(head,pace,time,len,index);//殺人並提供訪問遍歷鍊錶的下標
visit_list(mark, len,time);//遍歷鍊錶
}pnode creat_list(int len)
head=p;
p->data=1;//建立頭結點 並且將它的資料域置為1
for(i=2;i<=len;i++)//建立其他節點並依次將這些節點掛在尾部
q->data=i;//依次給節點資料域賦值,作為「人」的序號
p->next=q;
p=q;//讓p永遠指向鍊錶的尾部
}p->next=head;//首尾相連
return head;//返回頭結點位址以便訪問
}void visit_list(pnode mark,int len,int time)//遍歷迴圈鍊錶
while(p!=mark);//當沒有迴圈夠一圈
printf("\n"); }
pnode kill_list(pnode head,int pace,int time,int len,int index)
} p=p->next;//遍歷條件
} return mark;
}
約瑟夫問題兩種實現方式
陣列版本 include include main int p int malloc len sizeof int printf 請輸入步長 n scanf d pace if pace 0 if pace 0 printf 請輸入進行輪數 n scanf d time printf 請輸入您想從那...
約瑟夫環的兩種實現
方法一 用乙個陣列存放每個元素,再用乙個bool陣列存放每個元素是否還在那個佇列中。每次出列乙個元素,將其對應的那個bool值置為false。迴圈輸出第m個元素直到只剩下乙個元素在佇列中。不過這個時間複雜度比較高。includeusing namespace std 時間複雜度高的方法 define...
兩種方式實現checkBox readonly功能
今天在做開發的時候遇到了這樣乙個問題 有乙個checkbox選項是不能被改變的。但是checkbox又是沒有readonly屬性的,這個時候我就想到了另外乙個屬性disabled,但是disabled的物件是不能提交到後台的,所以這個又被排除掉了。想了想,只能新增事件來搞定了。於是在checkbox...